bref
API 2014 of the Zia HTTP server.
|
00001 00010 #ifndef _BREF_API_BREFVALUE_H_ 00011 #define _BREF_API_BREFVALUE_H_ 00012 00013 #pragma once 00014 00015 #include "detail/BrefDLL.h" 00016 #include <list> 00017 #include <map> 00018 #include <string> 00019 00020 namespace bref { 00021 00022 // Forward declaration of the BrefValue class 00023 class BREF_DLL BrefValue; 00024 00030 typedef std::list<BrefValue> BrefValueList; 00031 00037 typedef std::map<std::string, BrefValue> BrefValueArray; 00038 00060 class BREF_DLL BrefValue 00061 { 00062 public: 00066 enum confType 00067 { 00068 nullType, 00069 stringType, 00070 boolType, 00071 intType, 00072 doubleType, 00073 listType, 00074 arrayType 00075 }; 00076 00080 BrefValue(); 00081 00085 BrefValue(bool); 00086 00090 BrefValue(const std::string &); 00091 00095 BrefValue(int); 00096 00100 BrefValue(double); 00101 00106 confType getType() const; 00107 00111 void clear(); 00112 00116 bool isNull() const; 00117 00121 bool isString() const; 00122 00126 bool isBool() const; 00127 00131 bool isInt() const; 00132 00136 bool isDouble() const; 00137 00141 bool isList() const; 00142 00146 bool isArray() const; 00147 00151 const std::string & asString() const; 00152 00156 bool asBool() const; 00157 00161 int asInt() const; 00162 00166 double asDouble() const; 00167 00171 const BrefValueList & asList() const; 00172 00176 const BrefValueArray & asArray() const; 00177 00182 bool hasKey(std::string const & key) const; 00183 00187 BrefValue & operator[](std::string const & key); 00188 00192 void push(const bref::BrefValue &node); 00193 00197 void setNull(); 00198 00202 void setString(std::string const &); 00203 00207 void setBool(bool); 00208 00212 void setInt(int); 00213 00217 void setDouble(double); 00218 00219 private: 00223 confType type_; 00224 00228 std::string stringValue_; 00229 00233 bool boolValue_; 00234 00238 double doubleValue_; 00239 00243 int intValue_; 00244 00248 BrefValueArray arrayValue_; 00249 00253 BrefValueList listValue_; 00254 }; 00255 00256 } // ! bref 00257 00258 #endif /* ! _BREF_API_BREFVALUE_H_ */