LibMusicXML
3.22
src
elements
types.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 __types__
14
#define __types__
15
16
#include "exports.h"
17
#include "xml.h"
18
#include "visitor.h"
19
20
namespace
MusicXML2
21
{
22
28
template
<
int
elt>
class
musicxml
:
public
xmlelement
29
{
30
protected
:
31
musicxml
(
int
inputLineNumber
) :
xmlelement
(
inputLineNumber
) { fType =
elt
; }
32
33
public
:
34
/*
35
static SMARTP<musicxml<elt> > new_musicxml()
36
{ musicxml<elt>* o = new musicxml<elt>; assert(o!=0); return o; }
37
*
38
static SMARTP<musicxml<elt> > new_musicxml(const std::vector<Sxmlelement>& elts)
39
{ musicxml<elt>* o = new musicxml<elt>(elts); assert(o!=0); return o; }
40
*/
41
42
static
SMARTP<musicxml<elt>
> new_musicxml (
int
inputLineNumber
)
43
{
musicxml<elt>
*
o
=
new
musicxml<elt>
(
inputLineNumber
);
assert
(
o
!=0);
return
o
; }
44
static
SMARTP<musicxml<elt>
> new_musicxml (
const
std::vector<Sxmlelement>&
elts
,
int
inputLineNumber
)
45
{
musicxml<elt>
*
o
=
new
musicxml<elt>
(
elts
,
inputLineNumber
);
assert
(
o
!=0);
return
o
; }
46
47
virtual
void
acceptIn (
basevisitor
&
v
) {
48
if
(
visitor
<
SMARTP
<
musicxml<elt>
> >*
p
=
dynamic_cast<
visitor<SMARTP<musicxml<elt>
>
>*>(&
v
)) {
49
SMARTP<musicxml<elt>
>
sptr
=
this
;
50
p
->visitStart (
sptr
);
51
}
52
else
xmlelement::acceptIn (
v
);
53
}
54
55
virtual
void
acceptOut (
basevisitor
&
v
) {
56
if
(
visitor
<
SMARTP
<
musicxml<elt>
> >*
p
=
dynamic_cast<
visitor<SMARTP<musicxml<elt>
>
>*>(&
v
)) {
57
SMARTP<musicxml<elt>
>
sptr
=
this
;
58
p
->visitEnd (
sptr
);
59
}
60
else
xmlelement::acceptOut (
v
);
61
}
62
};
63
64
67
}
68
69
#endif
MusicXML2::SMARTP
the smart pointer implementation
Definition
smartpointer.h:58
MusicXML2::basevisitor
Definition
basevisitor.h:25
MusicXML2::musicxml
Definition
types.h:29
MusicXML2::visitor
Definition
visitor.h:27
MusicXML2::xmlelement
A generic xml element representation.
Definition
xml.h:86
Generated by
1.9.8