LibMusicXML  3.18
lpsrPartGroups.h
1 /*
2  MusicXML Library
3  Copyright (C) Grame 2006-2013
4 
5  This Source Code Form is subject to the terms of the Mozilla Public
6  License, v. 2.0. If a copy of the MPL was not distributed with this
7  file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10  research@grame.fr
11 */
12 
13 #ifndef ___lpsrPartGroups___
14 #define ___lpsrPartGroups___
15 
16 #include "lpsrElements.h"
17 
18 #include "msr.h"
19 
20 
21 namespace MusicXML2
22 {
23 
24 //______________________________________________________________________________
25 class lpsrPartGroupBlock;
26 typedef SMARTP<lpsrPartGroupBlock> S_lpsrPartGroupBlock;
27 
28 //______________________________________________________________________________
30 {
31  public:
32 
33  // creation from MusicXML
34  // ------------------------------------------------------
35 
36  static SMARTP<lpsrPartGroupBlock> create (
38 
39  protected:
40 
41  // constructors/destructor
42  // ------------------------------------------------------
43 
46 
47  virtual ~lpsrPartGroupBlock ();
48 
49  public:
50 
51  // set and get
52  // ------------------------------------------------------
53 
54  S_msrPartGroup getPartGroup () const
55  { return fPartGroup; }
56 
57  const list<S_msrElement>&
58  getPartGroupBlockElements () const
59  { return fPartGroupBlockElements; }
60 
61  public:
62 
63  // public services
64  // ------------------------------------------------------
65 
66  void appendElementToPartGroupBlock (
67  S_msrElement elem)
68  { fPartGroupBlockElements.push_back (elem); }
69 
70  public:
71 
72  // visitors
73  // ------------------------------------------------------
74 
75  virtual void acceptIn (basevisitor* v);
76  virtual void acceptOut (basevisitor* v);
77 
78  virtual void browseData (basevisitor* v);
79 
80  public:
81 
82  // print
83  // ------------------------------------------------------
84 
85  virtual void print (ostream& os) const;
86 
87  private:
88 
89  // fields
90  // ------------------------------------------------------
91 
92  S_msrPartGroup fPartGroup;
93 
94  list<S_msrElement> fPartGroupBlockElements;
95 };
96 EXP ostream& operator<< (ostream& os, const S_lpsrPartGroupBlock& elt);
97 
98 
99 }
100 
101 
102 #endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: lpsrElements.h:24
Definition: lpsrPartGroups.h:30
Definition: partlistvisitor.h:29