Verovio
Source code documentation
savefunctor.h
1 // Name: savefunctor.h
3 // Author: David Bauer
4 // Created: 2023
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_SAVEFUNCTOR_H__
9 #define __VRV_SAVEFUNCTOR_H__
10 
11 #include "functor.h"
12 
13 namespace vrv {
14 
15 //----------------------------------------------------------------------------
16 // SaveFunctor
17 //----------------------------------------------------------------------------
18 
22 class SaveFunctor : public Functor {
23 public:
27  SaveFunctor(Output *output, bool basic);
29  virtual ~SaveFunctor() = default;
31 
32  /*
33  * Abstract base implementation
34  */
35  bool ImplementsEndInterface() const override { return true; }
36 
37  /*
38  * Functor interface
39  */
41  FunctorCode VisitDots(Dots *dots) override;
42  FunctorCode VisitDotsEnd(Dots *dots) override;
43  FunctorCode VisitEditorialElement(EditorialElement *editorialElement) override;
44  FunctorCode VisitEditorialElementEnd(EditorialElement *editorialElement) override;
45  FunctorCode VisitFlag(Flag *flag) override;
46  FunctorCode VisitFlagEnd(Flag *flag) override;
47  FunctorCode VisitMdiv(Mdiv *mdiv) override;
48  FunctorCode VisitMdivEnd(Mdiv *mdiv) override;
49  FunctorCode VisitMeasure(Measure *measure) override;
50  FunctorCode VisitMeasureEnd(Measure *measure) override;
51  FunctorCode VisitMNum(MNum *mNum) override;
52  FunctorCode VisitMNumEnd(MNum *mNum) override;
53  FunctorCode VisitObject(Object *object) override;
54  FunctorCode VisitObjectEnd(Object *object) override;
55  FunctorCode VisitRunningElement(RunningElement *runningElement) override;
56  FunctorCode VisitRunningElementEnd(RunningElement *runningElement) override;
57  FunctorCode VisitText(Text *text) override;
58  FunctorCode VisitTextEnd(Text *text) override;
59  FunctorCode VisitTupletBracket(TupletBracket *tupletBracket) override;
60  FunctorCode VisitTupletBracketEnd(TupletBracket *tupletBracket) override;
61  FunctorCode VisitTupletNum(TupletNum *tupletNum) override;
62  FunctorCode VisitTupletNumEnd(TupletNum *tupletNum) override;
64 
65 protected:
66  //
67 private:
68  //
69 public:
70  //
71 private:
72  // The output stream
73  Output *m_output;
74  // Indicates MEI basic output i.e. filtering out editorial markup
75  bool m_basic;
76 };
77 
78 } // namespace vrv
79 
80 #endif // __VRV_SAVEFUNCTOR_H__
vrv::Measure
This class represents a measure in a page-based score (Doc).
Definition: measure.h:37
vrv::Text
This class models CDATA (text)
Definition: text.h:23
vrv::Dots
This class models a group of dots as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:27
vrv::TupletBracket
This class models a bracket as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:150
vrv::Object
This class represents a basic object.
Definition: object.h:59
vrv::MNum
This class models the MEI <mNum> element.
Definition: mnum.h:26
vrv::Flag
This class models a stem as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:97
vrv::Output
This class is a base class for output classes.
Definition: iobase.h:31
vrv::RunningElement
This class represents running elements (headers and footers).
Definition: runningelement.h:28
vrv::Functor
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
vrv::TupletNum
This class models a tuplet num as a layer element part and has no direct MEI equivalent.
Definition: elementpart.h:249
vrv::Mdiv
This class represent a <mdiv> in page-based MEI.
Definition: mdiv.h:24
vrv::SaveFunctor
This class saves the content of any object by calling the appropriate FileOutputStream method.
Definition: savefunctor.h:22
vrv::SaveFunctor::ImplementsEndInterface
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: savefunctor.h:35
vrv::EditorialElement
This class is a base class for the editorial element containing musical content, for example <rgd> or...
Definition: editorial.h:38