libbbb  1.2.1
Groups common code used in some applications and libraries.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
vardata.h
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __VADATA_INC__
21 #define __VADATA_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <libbbb/libbbb.h>
29 #include <libbbb/refcnt.h>
30 #include <QString>
31 #include <QStringList>
32 
33 /* INCLUDES ============================================================ */
34 //
35 //
36 //
37 //
38 /* DEFINITIONS --------------------------------------------------------- */
39 
40 namespace bbb {
41 
42 /* DEFINITIONS ========================================================= */
43 //
44 //
45 //
46 //
47 /* CLASS --------------------------------------------------------------- */
48 
70 class
71  BBBSHARED_EXPORT
72  VarData : public RefCnt {
73 
74  //
75  //
76  //
77  //
78  /* DEFINITIONS ----------------------------------------------------- */
79 
80 public:
81 
82 
83  /* DEFINITIONS ===================================================== */
84  //
85  //
86  //
87  //
88  /* DATA ------------------------------------------------------------ */
89 
90 protected:
91 
93  QString s_name_;
94 
96  QStringList s_val_;
97 
98  /* DATA ============================================================ */
99  //
100  //
101  //
102  //
103  /* FUNCTIONS ------------------------------------------------------- */
104 
105 public:
106 
108  VarData ( void );
109 
111  VarData ( const QString & s_name )
112  : s_name_(s_name), s_val_()
113  {}
114 
116  VarData ( const QString & s_name, const QString & s_val )
117  : s_name_(s_name), s_val_(s_val)
118  {}
119 
121  VarData ( const QString & s_name, const QStringList & s_val )
122  : s_name_(s_name), s_val_(s_val)
123  {}
124 
125 private:
126 
128  virtual ~VarData ( void );
129 
130 public:
131 
133  const QString & name ( void ) const
134  { return s_name_; }
135 
137  const QStringList & valueSL ( void ) const
138  { return s_val_; }
139 
141  int count ( void ) const
142  { return s_val_.count(); }
143 
145  bool isInteger ( int i = 0 ) const;
146 
148  bool isDouble ( int i = 0 ) const;
149 
151  bool isBool ( int i = 0 ) const;
152 
154  QString value ( int i = 0 ) const
155  { return ( i >= s_val_.count() ) ? QString() : s_val_.at(i); }
156 
158  qint64 toInteger ( bool * b_ok = NULL, int i = 0 ) const;
159 
161  double toDouble ( bool * b_ok = NULL, int i = 0 ) const;
162 
164  bool toBool ( bool * b_ok = NULL, int i = 0 ) const;
165 
166 
168  void setName ( const QString & s )
169  { s_name_ = s; }
170 
172  void setValue ( const QStringList & sl )
173  { s_val_ = sl; }
174 
176  void set ( const QString & s_name, const QStringList & sl_value )
177  { s_name_ = s_name; s_val_ = sl_value; }
178 
179 
181  void setValue ( QString s, int index = 0 );
182 
184  void setValue ( qint64 i, int index = 0 );
185 
187  void setValue ( bool b, int index = 0 );
188 
190  void setValue ( double d, int index = 0 );
191 
193  void setAllNew ( QString s );
194 
196  void setAllNew ( qint64 i );
197 
199  void setAllNew ( bool b );
200 
202  void setAllNew ( double d );
203 
204 
206  void appendValue ( QString s );
207 
209  void appendValue ( qint64 i );
210 
212  void appendValue ( bool b );
213 
215  void appendValue ( double d );
216 
218  void append ( const QStringList & sl );
219 
221  void extendToFit ( int i );
222 
224  void clear ( void )
225  { s_val_.clear(); }
226 
227 
228  /* FUNCTIONS ======================================================= */
229  //
230  //
231  //
232  //
233 
234 }; /* class VarData */
235 
236 /* CLASS =============================================================== */
237 //
238 //
239 //
240 //
241 } // namespace bbb
242 
243 #endif // __VADATA_INC__
244 /* ------------------------------------------------------------------------- */
245 /* ========================================================================= */