1 /*
2   This file is to be included only by bsrMutualDependencies.h,
3   to satisfy declarations mutual dependencies.
4 */
5 
6 //______________________________________________________________________________
7 class bsrPage : public bsrElement
8 {
9   public:
10 
11     // creation
12     // ------------------------------------------------------
13 
14     static SMARTP<bsrPage> create (
15       int inputLineNumber,
16       int printPageNumber,
17       int linesPerPage);
18 
19     SMARTP<bsrPage> createPageNewbornClone ();
20 
21   protected:
22 
23     // constructors/destructor
24     // ------------------------------------------------------
25 
26     bsrPage (
27       int inputLineNumber,
28       int printPageNumber,
29       int linesPerPage);
30 
31     virtual ~bsrPage ();
32 
33   public:
34 
35     // set and get
36     // ------------------------------------------------------
37 
getPrintPageNumber()38     int                   getPrintPageNumber () const
39                               { return fPrintPageNumber; }
40 
getBraillePageNumber()41     int                   getBraillePageNumber () const
42                               { return fBraillePageNumber; }
43 
getLinesPerPage()44     int                   getLinesPerPage () const
45                               { return fLinesPerPage; }
46 
47   public:
48 
49     // public services
50     // ------------------------------------------------------
51 
appendPageHeadingToPage(S_bsrPageHeading pageHeading)52     void                  appendPageHeadingToPage (S_bsrPageHeading pageHeading)
53                               { fPageElementsList.push_back (pageHeading); }
54 
appendMusicHeadingToPage(S_bsrMusicHeading musicHeading)55     void                  appendMusicHeadingToPage (S_bsrMusicHeading musicHeading)
56                               { fPageElementsList.push_back (musicHeading); }
57 
appendFootNotesToPage(S_bsrFootNotes footNotes)58     void                  appendFootNotesToPage (S_bsrFootNotes footNotes)
59                               { fPageElementsList.push_back (footNotes); }
60 
appendLineToPage(S_bsrLine line)61     void                  appendLineToPage (S_bsrLine line)
62                               { fPageElementsList.push_back (line); }
63 
64     int                   fetchLineContentsNumber () const;
65 
66   public:
67 
68 
69   public:
70 
71     // visitors
72     // ------------------------------------------------------
73 
74     virtual void          acceptIn  (basevisitor* v);
75     virtual void          acceptOut (basevisitor* v);
76 
77     virtual void          browseData (basevisitor* v);
78 
79   public:
80 
81     // print
82     // ------------------------------------------------------
83 
84     virtual std::string   asString () const;
85 
86     virtual void          print (ostream& os) const;
87 
88   private:
89 
90     // fields
91     // ------------------------------------------------------
92 
93     int                   fPrintPageNumber;
94     int                   fBraillePageNumber;
95 
96     int                   fLinesPerPage;
97 
98     list<S_bsrPageElement>
99                           fPageElementsList;
100 };
101 typedef SMARTP<bsrPage> S_bsrPage;
102 EXP ostream& operator<< (ostream& os, const S_bsrPage& elt);
103 
104