|
errno_t | Open (OutputStream *stream) noexcept |
| ストリームを指定してデータの生成を開始します。 [詳解]
|
|
bool | Flush () noexcept |
| ストリームにデータを書き出しストリームをフラッシュします。 [詳解]
|
|
errno_t | Close () noexcept |
| ジェネレータをクローズして初期化直後の状態に設定します。 [詳解]
|
|
JsonStreamGenerator & | Null () noexcept |
| null を出力します。 [詳解]
|
|
JsonStreamGenerator & | Boolean (bool value) noexcept |
| true 又はfalse を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int8 (int8_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint8 (uint8_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int16 (int16_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint16 (uint16_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int32 (int32_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint32 (uint32_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int64 (int64_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint64 (uint64_t num) noexcept |
| 整数値を出力します。 [詳解]
|
|
JsonStreamGenerator & | Float (float num) noexcept |
| 浮動小数点数を出力します。 [詳解]
|
|
JsonStreamGenerator & | Double (double num) noexcept |
| 浮動小数点数を出力します。 [詳解]
|
|
JsonStreamGenerator & | String (const nlib_utf8_t *str) noexcept |
| 文字列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Binary (const void *bin, size_t n) noexcept |
| バイナリデータを出力します。現在のところmsgpackの出力のみがサポートされています。 [詳解]
|
|
JsonStreamGenerator & | Ext (int8_t tp, const void *bin, size_t n) noexcept |
| 拡張データを出力します。 [詳解]
|
|
JsonStreamGenerator & | Timestamp (nlib_time t) noexcept |
| タイムスタンプを出力します。JSONの場合は文字列として出力されます。 [詳解]
|
|
JsonStreamGenerator & | Object (const MpObject &obj) noexcept |
| MpObject を出力します。 [詳解]
|
|
|
constexpr | JsonStreamGenerator () noexcept |
| デフォルトコンストラクタです。
|
|
| ~JsonStreamGenerator () noexcept |
| デストラクタです。
|
|
| JsonStreamGenerator (JsonStreamGenerator &&rhs) |
| ムーブコンストラクタです。
|
|
JsonStreamGenerator & | operator= (JsonStreamGenerator &&rhs) |
| ムーブ代入演算子です。
|
|
void | Reset () noexcept |
| このオブジェクトをデフォルトコンストラクタの実行直後の状態にリセットします。
|
|
errno_t | Init (const JsonStreamGeneratorSettings &settings) noexcept |
| 動作オプションを指定して初期化を行います。成功した場合は0を返します。 [詳解]
|
|
errno_t | Init () noexcept |
| 上記関数の引数省略版で、settings をデフォルト値で渡します。
|
|
|
JsonStreamGenerator & | StartArray (size_t count) noexcept |
| 配列の出力を開始します。 [詳解]
|
|
JsonStreamGenerator & | EndArray () noexcept |
| 配列を終了します。 [詳解]
|
|
JsonStreamGenerator & | EmptyArray () noexcept |
| 空の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int8Array (const int8_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint8Array (const uint8_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int16Array (const int16_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint16Array (const uint16_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int32Array (const int32_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint32Array (const uint32_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Int64Array (const int64_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | Uint64Array (const uint64_t *p, size_t count) noexcept |
| 整数値の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | FloatArray (const float *p, size_t count) noexcept |
| 単精度浮動小数点数の配列を出力します。 [詳解]
|
|
JsonStreamGenerator & | DoubleArray (const double *p, size_t count) noexcept |
| 倍精度浮動小数点数の配列を出力します。 [詳解]
|
|
|
JsonStreamGenerator & | StartMap (size_t count) noexcept |
| マップの出力を開始します。 [詳解]
|
|
JsonStreamGenerator & | Key (const nlib_utf8_t *key) noexcept |
| 連想配列のキーを出力します。 [詳解]
|
|
JsonStreamGenerator & | EndMap () noexcept |
| マップを終了します。 [詳解]
|
|
JsonStreamGenerator & | EmptyMap () noexcept |
| 空のマップを出力します。 [詳解]
|
|
|
Error | GetError () const noexcept |
| エラーを取得します。 [詳解]
|
|
| operator bool () const |
| オブジェクトが初期化済みで内部でエラーが発生していなければtrue 、発生していればfalse を返します。
|
|
|
static errno_t | Generate (size_t *written, nlib_utf8_t *str, size_t n, const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept |
| obj の内容をJSON又はmsgpackで出力します。 [詳解]
|
|
static errno_t | Generate (size_t *written, nlib_utf8_t *str, size_t n, const MpObject &obj) noexcept |
| 上記関数の引数省略版で、settings をデフォルト値で渡します。
|
|
template<size_t N> |
static errno_t | Generate (size_t *written, nlib_utf8_t(&str)[N], const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept |
| 上記関数のテンプレートオーバーロードです。
|
|
template<size_t N> |
static errno_t | Generate (size_t *written, nlib_utf8_t(&str)[N], const MpObject &obj) noexcept |
| 上記関数のテンプレートオーバーロードです。
|
|
static std::pair< errno_t, size_t > | Generate (nlib_utf8_t *str, size_t n, const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept |
| obj の内容をJSON又はmsgpackで出力します。 [詳解]
|
|
template<size_t N> |
static std::pair< errno_t, size_t > | Generate (nlib_utf8_t(&str)[N], const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept |
| 上記関数のテンプレートオーバーロードです。
|
|
static std::pair< errno_t, size_t > | Generate (nlib_utf8_t *str, size_t n, const MpObject &obj) noexcept |
| 上記関数の引数省略版で、settings をデフォルト値で渡します。
|
|
template<size_t N> |
static std::pair< errno_t, size_t > | Generate (nlib_utf8_t(&str)[N], const MpObject &obj) noexcept |
| 上記関数のテンプレートオーバーロードです。
|
|
JSON又はmsgpackを出力するためのクラスです。
- 説明
- 初期化を終えた後は、以下のようなコードでメソッドチェーンを記述してJSON又はmsgpackを出力することができます。
MemoryOutputStream stream(buf);
SUCCEED_IF(gen.Init() == 0);
SUCCEED_IF(gen.Open(&stream) == 0);
gen.StartMap(3);
gen.Key("key1").String("value");
gen.Key("key2").StartArray(3).Int32(1).Int32(2).Int32(3).EndArray();
gen.Key("key3").StartArray(2).Boolean(true).Null().EndArray();
gen.EndMap();
SUCCEED_IF(gen.Close() == 0);
size_t n = stream.Pos();
SUCCEED_IF(stream.Close());
buf[n] = '\0';
静的メンバ関数を利用して、MpObject
から簡単に出力することも可能です。 SUCCEED_IF(r.first == 0);
JsonStreamGenerator.h の 42 行目に定義があります。