GUIDOLib  1.7.7
Guido Engine Internal Documentation
TagParameter.h
1 #ifndef TagParameter_H
2 #define TagParameter_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2002-2017 Grame
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
21 #include <memory>
22 #include <string>
23 #include <vector>
24 #include <iostream>
25 
27 {
28  public:
30 
31  TagParameter() : fFlag( NOTSET ), fRequired(false) { }
32  virtual ~TagParameter() { }
33 
34  virtual void set ( const TagParameter & in );
35 
36  virtual TagParameter * getCopy() const { return 0; }
37  virtual bool copyValue(const TagParameter *tp) { return false; }
38 
39  virtual void print(std::ostream& out);
40 
41  void setRequired(bool i) { fRequired = i; }
42  void setIsAuto() { fFlag = SETBYAUTO; }
43  void setByName() { fFlag = SETBYNAME; }
44  void setNoSet() { fFlag = NOTSET; }
45  void setByPos() { fFlag = SETBYPOSITION; }
46  void setBySet() { fFlag = SET; }
47  virtual void setValue(const char *) { }
48  void setName(const std::string& p) { fName = p; }
49 
50  const std::string& getName() const { return fName; }
51  bool TagIsRequired() const { return fRequired; }
52  bool TagIsSet() const { return fFlag != NOTSET; };
53  bool TagIsSetByPosition() const { return fFlag == SETBYPOSITION; }
54  bool TagIsSetByName() const { return fFlag == SETBYNAME; }
55  bool TagIsSetByAuto() const { return fFlag == SETBYAUTO; }
56  bool TagIsNotSet() const { return fFlag == NOTSET; }
57 
58  virtual bool isString() const { return false; }
59  virtual bool isInt() const { return false; }
60  virtual bool isFloat() const { return false; }
61  virtual bool isRGBValue() const { return false; }
62 
63  private:
64  std::string fName;
65  PARSEFLAG fFlag;
66  bool fRequired;
67 };
68 
69 inline std::ostream& operator << ( std::ostream & os, TagParameter* p) { p->print(os); return os; }
70 
71 typedef std::shared_ptr<TagParameter> STagParameterPtr;
72 typedef std::vector<STagParameterPtr> TagParametersList;
73 
74 #endif
75 
76 
TagParameter::SET
Definition: TagParameter.h:29
TagParameter::setIsAuto
void setIsAuto()
Definition: TagParameter.h:42
TagParameter::NOTSET
Definition: TagParameter.h:29
TagParameter::isFloat
virtual bool isFloat() const
Definition: TagParameter.h:60
TagParameter::TagIsSetByPosition
bool TagIsSetByPosition() const
Definition: TagParameter.h:53
TagParameter::setName
void setName(const std::string &p)
Definition: TagParameter.h:48
TagParameter::SETBYPOSITION
Definition: TagParameter.h:29
TagParameter::copyValue
virtual bool copyValue(const TagParameter *tp)
Definition: TagParameter.h:37
TagParameter::isInt
virtual bool isInt() const
Definition: TagParameter.h:59
TagParameter::isRGBValue
virtual bool isRGBValue() const
Definition: TagParameter.h:61
TagParameter::setRequired
void setRequired(bool i)
Definition: TagParameter.h:41
TagParameter::isString
virtual bool isString() const
Definition: TagParameter.h:58
TagParameter::TagParameter
TagParameter()
Definition: TagParameter.h:31
TagParameter::TagIsSetByName
bool TagIsSetByName() const
Definition: TagParameter.h:54
TagParameter::print
virtual void print(std::ostream &out)
TagParameter::~TagParameter
virtual ~TagParameter()
Definition: TagParameter.h:32
TagParameter
The base class for all guido tags.
Definition: TagParameter.h:26
TagParameter::set
virtual void set(const TagParameter &in)
TagParameter::TagIsSetByAuto
bool TagIsSetByAuto() const
Definition: TagParameter.h:55
TagParameter::PARSEFLAG
PARSEFLAG
Definition: TagParameter.h:29
TagParameter::setBySet
void setBySet()
Definition: TagParameter.h:46
TagParameter::TagIsSet
bool TagIsSet() const
Definition: TagParameter.h:52
TagParameter::setValue
virtual void setValue(const char *)
Definition: TagParameter.h:47
TagParameter::setNoSet
void setNoSet()
Definition: TagParameter.h:44
TagParameter::getCopy
virtual TagParameter * getCopy() const
Definition: TagParameter.h:36
TagParameter::TagIsRequired
bool TagIsRequired() const
Definition: TagParameter.h:51
operator<<
std::ostream & operator<<(std::ostream &os, const svgendl &eol)
TagParameter::setByPos
void setByPos()
Definition: TagParameter.h:45
TagParameter::TagIsNotSet
bool TagIsNotSet() const
Definition: TagParameter.h:56
TagParameter::SETBYNAME
Definition: TagParameter.h:29
TagParameter::SETBYAUTO
Definition: TagParameter.h:29
TagParameter::setByName
void setByName()
Definition: TagParameter.h:43
TagParameter::getName
const std::string & getName() const
Definition: TagParameter.h:50

Guido Project Copyright © 2019 Grame-CNCM