6 #ifndef AMDAEMON_UTIL_JSONTREE_H 7 #define AMDAEMON_UTIL_JSONTREE_H 11 #include <type_traits> 26 class JsonObjectAdder;
47 template<
class Traits,
class Alloc>
48 void addValue(
const std::basic_string<wchar_t, Traits, Alloc>& value)
56 void addValue(
const char* value,
const std::locale& loc = std::locale());
63 template<
class Traits,
class Alloc>
65 const std::basic_string<char, Traits, Alloc>& value,
66 const std::locale& loc = std::locale())
83 ->
typename std::enable_if<std::is_integral<T>::value>::type
85 addDirectValue(std::to_wstring(value).c_str());
105 ->
typename std::enable_if<!std::is_arithmetic<T>::value>::type
107 std::wostringstream ss;
123 virtual void addValue(JsonValue value) = 0;
128 void addDirectValue(
const wchar_t* value);
145 void addValue(
const wchar_t* name,
const wchar_t* value);
152 template<
class Traits,
class Alloc>
155 const std::basic_string<wchar_t, Traits, Alloc>& value)
167 const std::locale& loc = std::locale());
175 template<
class Traits,
class Alloc>
178 const std::basic_string<char, Traits, Alloc>& value,
179 const std::locale& loc = std::locale())
187 void addValue(
const wchar_t* name,
bool value);
191 void addValue(
const wchar_t* name, std::nullptr_t);
199 ->
typename std::enable_if<std::is_integral<T>::value>::type
201 addDirectValue(name, std::to_wstring(value).c_str());
209 void addValue(
const wchar_t* name,
float value);
216 void addValue(
const wchar_t* name,
double value);
224 ->
typename std::enable_if<!std::is_arithmetic<T>::value>::type
226 std::wostringstream ss;
245 virtual void addValue(
const wchar_t* name, JsonValue value) = 0;
251 void addDirectValue(
const wchar_t* name,
const wchar_t* value);
289 void addTree(
const wchar_t* name,
const JsonTree& tree);
297 void addTree(
const wchar_t* name,
JsonTree&& tree);
302 void toString(std::wstring& str, std::int32_t indent = 0)
const;
307 std::wstring
toString(std::int32_t indent = 0)
const 318 void addValue(
const wchar_t* name, JsonValue value)
override;
324 std::unique_ptr<Data> _data;
329 #endif // AMDAEMON_UTIL_JSONTREE_H void addArray(std::function< void(JsonArrayAdder &)> addFunc)
配列値を追加する。
virtual ‾JsonObjectAdder()
デストラクタ。
Definition: JsonTree.h:140
void addValue(const std::basic_string< char, Traits, Alloc > &value, const std::locale &loc=std::locale())
文字列値を追加する。
Definition: JsonTree.h:64
JSONオブジェクトへの要素追加処理を提供する抽象クラス。
Definition: JsonTree.h:133
auto addValue(const wchar_t *name, const T &value) -> typename std::enable_if<!std::is_arithmetic< T >::value >::type
任意の値を文字列化して追加する。
Definition: JsonTree.h:223
std::wstring toString(std::int32_t indent=0) const
JSON形式文字列を作成して返す。
Definition: JsonTree.h:307
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
JsonObjectAdder()
コンストラクタ。
Definition: JsonTree.h:137
const wchar_t * toString(AimeCommand command)
AimeCommand 列挙値の文字列表現値を取得する。
void addObject(std::function< void(JsonObjectAdder &)> addFunc)
オブジェクト値を追加する。
auto addValue(const wchar_t *name, const T &value) -> typename std::enable_if< std::is_integral< T >::value >::type
整数値を追加する。
Definition: JsonTree.h:198
void addValue(const wchar_t *name, const std::basic_string< wchar_t, Traits, Alloc > &value)
文字列値を追加する。
Definition: JsonTree.h:153
virtual ‾JsonArrayAdder()
デストラクタ。
Definition: JsonTree.h:37
JSON配列への要素追加処理を提供する抽象クラス。
Definition: JsonTree.h:30
auto addValue(const T &value) -> typename std::enable_if<!std::is_arithmetic< T >::value >::type
任意の値を文字列化して追加する。
Definition: JsonTree.h:104
JsonArrayAdder()
コンストラクタ。
Definition: JsonTree.h:34
JSONツリーを作成するためのクラス。
Definition: JsonTree.h:256
auto addValue(const T &value) -> typename std::enable_if< std::is_integral< T >::value >::type
整数値を追加する。
Definition: JsonTree.h:82
void addValue(const wchar_t *value)
文字列値を追加する。
void addValue(const wchar_t *name, const std::basic_string< char, Traits, Alloc > &value, const std::locale &loc=std::locale())
文字列値を追加する。
Definition: JsonTree.h:176
void addValue(const std::basic_string< wchar_t, Traits, Alloc > &value)
文字列値を追加する。
Definition: JsonTree.h:48