3 #ifndef INCLUDE_NN_NLIB_MSGPACK_JSONSTREAMGENERATOR_H_ 4 #define INCLUDE_NN_NLIB_MSGPACK_JSONSTREAMGENERATOR_H_ 8 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 10 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 22 : msgpack(false), pretty_print(false),
23 omit_utf8_checking(false), strict(false) {}
32 ERROR_ENDARRAY_REQUIRED,
33 ERROR_ENDARRAY_FORBIDDEN,
34 ERROR_ENDMAP_REQUIRED,
35 ERROR_ENDMAP_FORBIDDEN,
39 ERROR_ARRAY_OR_MAP_REQUIRED,
41 ERROR_BINARY_NOT_AVAILABLE,
42 ERROR_EXT_NOT_AVAILABLE,
47 static errno_t Generate(
size_t* written,
char* str,
size_t n,
const MpObject& obj,
53 return Generate(written, str, n, obj, settings);
58 return Generate(written, str, N, obj, settings);
63 return Generate(written, str, N, obj, settings);
71 return Init(settings);
99 template<
class STDSTRING>
101 return String(str.c_str());
115 Error
GetError() const NLIB_NOEXCEPT {
return error_; }
128 struct JsonStreamGeneratorPrivate;
129 JsonStreamGeneratorPrivate* prv_;
136 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 137 #undef NLIB_VIS_PUBLIC 138 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 141 #endif // INCLUDE_NN_NLIB_MSGPACK_JSONSTREAMGENERATOR_H_ static errno_t Generate(size_t *written, char(&str)[N], const MpObject &obj) noexcept
JsonStreamGeneratorSettingsのデフォルト設定でGenerate(written, str, N, obj, settings)を実行します。 ...
errno_t Init() noexcept
デフォルト設定でパーサーの初期化を行います。
bool strict
trueの場合は最初の出力が、配列かマップでない場合にエラーを発生させます。
JsonStreamGenerator & EmptyArray() noexcept
空の配列を出力します。
#define NLIB_SAFE_BOOL(class_name, exp)
クラス内に安全なoperator bool()を定義します。 可能であればC++11のexplicit boolを利用します。 ...
JsonStreamGenerator & EndArray() noexcept
配列を終了します。
Error GetError() const noexcept
エラーを取得します。
JsonStreamGenerator() noexcept
デフォルトコンストラクタです。
bool omit_utf8_checking
trueの場合は文字列の出力時にUTF-8であるかどうかのチェックを省略します。
MessagePack又はJSONを読み込むことで作成されるオブジェクトです。
static errno_t Generate(size_t *written, char(&str)[N], const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept
Generate(written, str, N, obj, settings)を実行します。
static errno_t Generate(size_t *written, char *str, size_t n, const MpObject &obj) noexcept
JsonStreamGeneratorSettingsのデフォルト設定でGenerate(written, str, n, obj, settings)を実行します。 ...
JsonStreamGenerator & String(const STDSTRING &str) noexcept
文字列を出力します。
bool msgpack
trueの場合はJsonStreamGeneratorはJSONを出力し、falseの場合はmsgpackを出力します。 ...
MessagePack, JSON及びCSVを読み込むと作成されるオブジェクトです。
constexpr JsonStreamGeneratorSettings() noexcept
デフォルトコンストラクタです。各データメンバにデフォルト値を設定します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
bool pretty_print
trueの場合はJSON出力時に整形されたJSONを出力します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
JsonStreamGeneratorの設定パラメータ群を格納する構造体です。
JsonStreamGenerator & EndMap() noexcept
マップを終了します。
JsonStreamGenerator & EmptyMap() noexcept
空のマップを出力します。
JSON又はmsgpackを出力するためのクラスです。
出力ストリームの基底クラスです。このクラスを実体化することはできません。