limal-ca-mgm
LiteralValues.hpp
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | |
3 | _ _ _ _ __ _ |
4 | | | | | | \_/ | / \ | | |
5 | | | | | | |_| | / /\ \ | | |
6 | | |__ | | | | | | / ____ \ | |__ |
7 | |____||_| |_| |_|/ / \ \|____| |
8 | |
9 | ca-mgm library |
10 | |
11 | (C) SUSE Linux Products GmbH |
12 \----------------------------------------------------------------------/
13 
14  File: LiteralValues.hpp
15 
16  Author: <Michael Calmer> <mc@suse.de>
17  Maintainer: <Michael Calmer> <mc@suse.de>
18 
19  Purpose:
20 
21 /-*/
22 #ifndef LIMAL_CA_MGM_LITERAL_VALUES_HPP
23 #define LIMAL_CA_MGM_LITERAL_VALUES_HPP
24 
25 #include <limal/ca-mgm/config.h>
27 #include <blocxx/COWIntrusiveReference.hpp>
28 
29 namespace LIMAL_NAMESPACE {
30 
31 namespace CA_MGM_NAMESPACE {
32 
33  class LiteralValueImpl;
34  class CA;
35 
42  class LiteralValue {
43  public:
44  LiteralValue();
45 
52  LiteralValue(const String &type, const String &value);
53 
60  LiteralValue(const String& value);
61  LiteralValue(const LiteralValue& value);
62 
63 #ifndef SWIG
64 
66  operator=(const LiteralValue& value);
67 
68 #endif
69 
70  virtual ~LiteralValue();
71 
78  void
79  setLiteral(const String &type, const String &value);
80 
87  void
88  setValue(const String &value);
89 
93  String
94  getType() const;
95 
99  String
100  getValue() const;
101 
102  virtual bool
103  valid() const;
104 
105  virtual blocxx::StringArray
106  verify() const;
107 
108  virtual blocxx::StringArray
109  dump() const;
110 
114  String
115  toString() const;
116 
122  commit2Config(CA& ca, Type type, blocxx::UInt32 num) const;
123 
124 #ifndef SWIG
125 
126  friend bool
127  operator==(const LiteralValue &l, const LiteralValue &r);
128 
129  friend bool
130  operator<(const LiteralValue &l, const LiteralValue &r);
131 
132 #endif
133 
134  private:
135  blocxx::COWIntrusiveReference<LiteralValueImpl> m_impl;
136 
137  };
138 
139 }
140 }
141 
142 #endif // LIMAL_CA_MGM_LITERAL_VALUES_HPP