LibMusicXML  3.18
sortvisitor.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 __sortVisitor__
14 #define __sortVisitor__
15 
16 #include "visitor.h"
17 #include "typedefs.h"
18 #include "xml.h"
19 
20 namespace MusicXML2
21 {
22 
31 class sortvisitor :
32  public visitor<S_accord>,
33  public visitor<S_accordion_registration>,
34  public visitor<S_appearance>,
35  public visitor<S_attributes>,
36  public visitor<S_backup>,
37  public visitor<S_barline>,
38  public visitor<S_bass>,
39  public visitor<S_beat_repeat>,
40  public visitor<S_bend>,
41  public visitor<S_clef>,
42  public visitor<S_defaults>,
43  public visitor<S_degree>,
44  public visitor<S_direction>,
45  public visitor<S_figure>,
46  public visitor<S_figured_bass>,
47  public visitor<S_forward>,
48  public visitor<S_frame_note>,
49  public visitor<S_frame>,
50  public visitor<S_harmonic>,
51  public visitor<S_harmony>,
52  public visitor<S_identification>,
53  public visitor<S_measure_style>,
54  public visitor<S_metronome_note>,
55  public visitor<S_metronome_tuplet>,
56  public visitor<S_midi_instrument>,
57  public visitor<S_notations>,
58  public visitor<S_note>,
59  public visitor<S_page_layout>,
60  public visitor<S_page_margins>,
61  public visitor<S_part_group>,
62  public visitor<S_pedal_tuning>,
63  public visitor<S_pitch>,
64  public visitor<S_print>,
65  public visitor<S_rest>,
66  public visitor<S_root>,
67  public visitor<S_scaling>,
68  public visitor<S_score_instrument>,
69  public visitor<S_score_part>,
70  public visitor<S_score_partwise>,
71  public visitor<S_slash>,
72  public visitor<S_sound>,
73  public visitor<S_staff_details>,
74  public visitor<S_staff_tuning>,
75  public visitor<S_system_layout>,
76  public visitor<S_system_margins>,
77  public visitor<S_time_modification>,
78  public visitor<S_transpose>,
79  public visitor<S_tuplet_actual>,
80  public visitor<S_tuplet_normal>,
81  public visitor<S_tuplet>,
82  public visitor<S_unpitched>,
83  public visitor<S_work>
84 {
85  protected:
86 
87  public:
88  sortvisitor();
89  virtual ~sortvisitor() {}
90 
91  virtual void visitStart( S_accord& elt );
92  virtual void visitStart( S_accordion_registration& elt );
93  virtual void visitStart( S_appearance& elt );
94  virtual void visitStart( S_attributes& elt );
95  virtual void visitStart( S_backup& elt );
96  virtual void visitStart( S_barline& elt );
97  virtual void visitStart( S_bass& elt );
98  virtual void visitStart( S_beat_repeat& elt );
99  virtual void visitStart( S_bend& elt );
100  virtual void visitStart( S_clef& elt );
101  virtual void visitStart( S_defaults& elt );
102  virtual void visitStart( S_degree& elt );
103  virtual void visitStart( S_direction& elt );
104  virtual void visitStart( S_figure& elt );
105  virtual void visitStart( S_figured_bass& elt );
106  virtual void visitStart( S_forward& elt );
107  virtual void visitStart( S_frame_note& elt );
108  virtual void visitStart( S_frame& elt );
109  virtual void visitStart( S_harmonic& elt );
110  virtual void visitStart( S_harmony& elt );
111  virtual void visitStart( S_identification& elt );
112  virtual void visitStart( S_measure_style& elt );
113  virtual void visitStart( S_metronome_note& elt );
114  virtual void visitStart( S_metronome_tuplet& elt );
115  virtual void visitStart( S_midi_instrument& elt );
116  virtual void visitStart( S_notations& elt );
117  virtual void visitStart( S_note& elt );
118  virtual void visitStart( S_page_layout& elt );
119  virtual void visitStart( S_page_margins& elt );
120  virtual void visitStart( S_part_group& elt );
121  virtual void visitStart( S_pedal_tuning& elt );
122  virtual void visitStart( S_pitch& elt );
123  virtual void visitStart( S_print& elt );
124  virtual void visitStart( S_rest& elt );
125  virtual void visitStart( S_root& elt );
126  virtual void visitStart( S_scaling& elt );
127  virtual void visitStart( S_score_instrument& elt );
128  virtual void visitStart( S_score_part& elt );
129  virtual void visitStart( S_score_partwise& elt );
130  virtual void visitStart( S_slash& elt );
131  virtual void visitStart( S_sound& elt );
132  virtual void visitStart( S_staff_details& elt );
133  virtual void visitStart( S_staff_tuning& elt );
134  virtual void visitStart( S_system_layout& elt );
135  virtual void visitStart( S_system_margins& elt );
136  virtual void visitStart( S_time_modification& elt );
137  virtual void visitStart( S_transpose& elt );
138  virtual void visitStart( S_tuplet_actual& elt );
139  virtual void visitStart( S_tuplet_normal& elt );
140  virtual void visitStart( S_tuplet& elt );
141  virtual void visitStart( S_unpitched& elt );
142  virtual void visitStart( S_work& elt );
143 };
144 
147 }
148 
149 #endif
the smart pointer implementation
Definition: smartpointer.h:58
A visitor that sorts a musicxml tree according to the dtd.
Definition: sortvisitor.h:84
Definition: visitor.h:27