nlib
nn::nlib::msgpack::JsonStreamGenerator クラスfinal

JSON又はmsgpackを出力するためのクラスです。 [詳解]

#include "nn/nlib/msgpack/JsonStreamGenerator.h"

公開メンバ関数

bool Flush () noexcept
 ストリームにデータを書き出しストリームをフラッシュします。 [詳解]
 
JsonStreamGeneratorStartArray (size_t count) noexcept
 配列の出力を開始します。 [詳解]
 
JsonStreamGeneratorStartMap (size_t count) noexcept
 マップの出力を開始します。 [詳解]
 
JsonStreamGeneratorKey (const char *key) noexcept
 連想配列のキーを出力します。 [詳解]
 
JsonStreamGeneratorEndArray () noexcept
 配列を終了します。 [詳解]
 
JsonStreamGeneratorEndMap () noexcept
 マップを終了します。 [詳解]
 
JsonStreamGeneratorNull () noexcept
 nullを出力します。 [詳解]
 
JsonStreamGeneratorBoolean (bool value) noexcept
 true又はfalseを出力します。 [詳解]
 
JsonStreamGeneratorInt8 (int8_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorUint8 (uint8_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorInt16 (int16_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorUint16 (uint16_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorInt32 (int32_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorUint32 (uint32_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorInt64 (int64_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorUint64 (uint64_t num) noexcept
 整数値を出力します。 [詳解]
 
JsonStreamGeneratorFloat (float num) noexcept
 浮動小数点数を出力します。 [詳解]
 
JsonStreamGeneratorString (const char *str) noexcept
 文字列を出力します。 [詳解]
 
JsonStreamGeneratorBinary (const void *bin, size_t n) noexcept
 バイナリデータを出力します。現在のところmsgpackの出力のみがサポートされています。 [詳解]
 
JsonStreamGeneratorExt (int8_t tp, const void *bin, size_t n) noexcept
 拡張データを出力します。現在のところmsgpackの出力のみがサポートされています。 [詳解]
 
JsonStreamGeneratorObject (const MpObject &obj) noexcept
 MpObjectを出力します。 [詳解]
 
template<class STDSTRING >
JsonStreamGeneratorString (const STDSTRING &str) noexcept
 文字列を出力します。 [詳解]
 
JsonStreamGeneratorEmptyArray () noexcept
 空の配列を出力します。 [詳解]
 
JsonStreamGeneratorEmptyMap () noexcept
 空のマップを出力します。 [詳解]
 
JsonStreamGeneratorInt8Array (const int8_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorUint8Array (const uint8_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorInt16Array (const int16_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorUint16Array (const uint16_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorInt32Array (const int32_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorUint32Array (const uint32_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorInt64Array (const int64_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorUint64Array (const uint64_t *p, size_t count) noexcept
 整数値の配列を出力します。 [詳解]
 
JsonStreamGeneratorFloatArray (const float *p, size_t count) noexcept
 単精度浮動小数点数の配列を出力します。 [詳解]
 
JsonStreamGeneratorDoubleArray (const double *p, size_t count) noexcept
 倍精度浮動小数点数の配列を出力します。 [詳解]
 
基本的なメンバ関数
 JsonStreamGenerator () noexcept
 デフォルトコンストラクタです。
 
 ~JsonStreamGenerator () noexcept
 デストラクタです。
 
初期化と終了
errno_t Init (const JsonStreamGeneratorSettings &settings) noexcept
 ジェネレータの初期化を行います。 [詳解]
 
errno_t Init () noexcept
 デフォルト設定でパーサーの初期化を行います。
 
errno_t Open (OutputStream *stream) noexcept
 ストリームを指定してデータの生成を開始します。 [詳解]
 
errno_t Close () noexcept
 ジェネレータをクローズして初期化直後の状態に設定します。 [詳解]
 
エラーチェック
Error GetError () const noexcept
 エラーを取得します。 [詳解]
 
 operator bool () const
 エラーが発生していなければtrueを返します。
 

静的公開メンバ関数

static errno_t Generate (size_t *written, char *str, size_t n, const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept
 objからJSON又はmsgpackを出力します。 [詳解]
 
static errno_t Generate (size_t *written, char *str, size_t n, const MpObject &obj) noexcept
 JsonStreamGeneratorSettingsのデフォルト設定でGenerate(written, str, n, obj, settings)を実行します。
 
template<size_t N>
static errno_t Generate (size_t *written, char(&str)[N], const MpObject &obj, const JsonStreamGeneratorSettings &settings) noexcept
 Generate(written, str, N, obj, settings)を実行します。
 
template<size_t N>
static errno_t Generate (size_t *written, char(&str)[N], const MpObject &obj) noexcept
 JsonStreamGeneratorSettingsのデフォルト設定でGenerate(written, str, N, obj, settings)を実行します。
 

詳解

JSON又はmsgpackを出力するためのクラスです。

説明

JsonStreamGenerator.h26 行目に定義があります。

関数詳解

§ Binary()

nn::nlib::msgpack::JsonStreamGenerator::Binary ( const void *  bin,
size_t  n 
)
noexcept

バイナリデータを出力します。現在のところmsgpackの出力のみがサポートされています。

引数
[in]binバイナリデータ
[in]nバイナリデータのサイズ
戻り値
JsonStreamGeneratorオブジェクト
参照
https://github.com/msgpack/msgpack/blob/master/spec.md#formats-bin

§ Boolean()

nn::nlib::msgpack::JsonStreamGenerator::Boolean ( bool  value)
noexcept

true又はfalseを出力します。

引数
[in]value真偽値
戻り値
JsonStreamGeneratorオブジェクト

§ Close()

nn::nlib::msgpack::JsonStreamGenerator::Close ( )
noexcept

ジェネレータをクローズして初期化直後の状態に設定します。

戻り値
0成功した場合
EINVALOpen()が実行されていない場合
その他ストリームが返すエラー
説明
クローズの際にストリームをフラッシュしますが、ストリームをクローズすることはありません。

§ DoubleArray()

nn::nlib::msgpack::JsonStreamGenerator::DoubleArray ( const double *  p,
size_t  count 
)
noexcept

倍精度浮動小数点数の配列を出力します。

引数
[in]p倍精度浮動小数点数の配列へのポインタ
[in]count倍精度浮動小数点数の数
戻り値
JsonStreamGeneratorオブジェクト

§ EmptyArray()

nn::nlib::msgpack::JsonStreamGenerator::EmptyArray ( )
inlinenoexcept

空の配列を出力します。

戻り値
JsonStreamGeneratorオブジェクト

JsonStreamGenerator.h103 行目に定義があります。

§ EmptyMap()

nn::nlib::msgpack::JsonStreamGenerator::EmptyMap ( )
inlinenoexcept

空のマップを出力します。

戻り値
JsonStreamGeneratorオブジェクト

JsonStreamGenerator.h104 行目に定義があります。

§ EndArray()

nn::nlib::msgpack::JsonStreamGenerator::EndArray ( )
noexcept

配列を終了します。

戻り値
JsonStreamGeneratorオブジェクト

§ EndMap()

nn::nlib::msgpack::JsonStreamGenerator::EndMap ( )
noexcept

マップを終了します。

戻り値
JsonStreamGeneratorオブジェクト

§ Ext()

nn::nlib::msgpack::JsonStreamGenerator::Ext ( int8_t  tp,
const void *  bin,
size_t  n 
)
noexcept

拡張データを出力します。現在のところmsgpackの出力のみがサポートされています。

引数
[in]tp拡張データのタイプ
[in]binバイナリデータ
[in]nバイナリデータのサイズ
戻り値
JsonStreamGeneratorオブジェクト
参照
https://github.com/msgpack/msgpack/blob/master/spec.md#formats-ext

§ Float()

nn::nlib::msgpack::JsonStreamGenerator::Float ( float  num)
noexcept

浮動小数点数を出力します。

引数
[in]num単精度浮動小数点数
戻り値
JsonStreamGeneratorオブジェクト
引数
[in]num倍精度浮動小数点数
戻り値
JsonStreamGeneratorオブジェクト

§ FloatArray()

nn::nlib::msgpack::JsonStreamGenerator::FloatArray ( const float *  p,
size_t  count 
)
noexcept

単精度浮動小数点数の配列を出力します。

引数
[in]p単精度浮動小数点数の配列へのポインタ
[in]count単精度浮動小数点数の数
戻り値
JsonStreamGeneratorオブジェクト

§ Flush()

nn::nlib::msgpack::JsonStreamGenerator::Flush ( )
noexcept

ストリームにデータを書き出しストリームをフラッシュします。

戻り値
trueならば成功

§ Generate()

nn::nlib::msgpack::JsonStreamGenerator::Generate ( size_t *  written,
char *  str,
size_t  n,
const MpObject obj,
const JsonStreamGeneratorSettings settings 
)
staticnoexcept

objからJSON又はmsgpackを出力します。

引数
[out]written出力されたデータサイズ
[out]str出力が格納されるバッファ
[in]n出力バッファ・サイズ
[in]objJSON又はmsgpackにシリアライズされるMpObject
[in]settingsジェネレータの設定パラメータ
戻り値
0ならば成功
説明
JSONを出力する場合には文字列はヌル終端されます。 この場合writtenには文字列長が格納されています。

§ GetError()

nn::nlib::msgpack::JsonStreamGenerator::GetError ( ) const
inlinenoexcept

エラーを取得します。

戻り値
JsonStreamGeneratorが定義するエラー値
説明
以下の値のどれかを返します。
説明
ERROR_OK エラーは発生していません
ERROR_KEY_REQUIRED キーを出力する必要があります
ERROR_KEY_FORBIDDEN キーの出力をおこなってはいけません
ERROR_ENDARRAY_REQUIRED 配列を終了させる必要があります
ERROR_ENDARRAY_FORBIDDEN 配列を終了してはいけません
ERROR_ENDMAP_REQUIRED マップを終了させる必要があります
ERROR_ENDMAP_FORBIDDEN マップを終了してはいけません
ERROR_STRING_UTF8 文字列又はキーにUTF-8でない文字が含まれています
ERROR_STREAM 出力ストリームでエラーが発生しています
ERROR_ENOMEM メモリの確保に失敗しました
ERROR_ARRAY_OR_MAP_REQUIRED 配列かマップを開始させる必要があります
ERROR_DOCUMENT_END JSON/msgpackのドキュメントは既に終了しています
ERROR_BINARY_NOT_AVAILABLE Binary()を利用することはできません
ERROR_EXT_NOT_AVAILABLE Ext()を利用することはできません
ERROR_EINVAL 入力パラメータが不正です

JsonStreamGenerator.h115 行目に定義があります。

§ Init()

nn::nlib::msgpack::JsonStreamGenerator::Init ( const JsonStreamGeneratorSettings settings)
noexcept

ジェネレータの初期化を行います。

引数
[in]settings動作オプション
戻り値
0成功した場合
EALREADY既に初期化済みの場合

§ Int16()

nn::nlib::msgpack::JsonStreamGenerator::Int16 ( int16_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Int16Array()

nn::nlib::msgpack::JsonStreamGenerator::Int16Array ( const int16_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Int32()

nn::nlib::msgpack::JsonStreamGenerator::Int32 ( int32_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Int32Array()

nn::nlib::msgpack::JsonStreamGenerator::Int32Array ( const int32_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Int64()

nn::nlib::msgpack::JsonStreamGenerator::Int64 ( int64_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Int64Array()

nn::nlib::msgpack::JsonStreamGenerator::Int64Array ( const int64_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Int8()

nn::nlib::msgpack::JsonStreamGenerator::Int8 ( int8_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Int8Array()

nn::nlib::msgpack::JsonStreamGenerator::Int8Array ( const int8_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Key()

nn::nlib::msgpack::JsonStreamGenerator::Key ( const char *  key)
noexcept

連想配列のキーを出力します。

引数
[in]key連想配列のキー
戻り値
JsonStreamGeneratorオブジェクト

§ Null()

nn::nlib::msgpack::JsonStreamGenerator::Null ( )
noexcept

nullを出力します。

戻り値
JsonStreamGeneratorオブジェクト

§ Object()

nn::nlib::msgpack::JsonStreamGenerator::Object ( const MpObject obj)
noexcept

MpObjectを出力します。

引数
[in]obj出力するMpObject
戻り値
JsonStreamGeneratorオブジェクト

§ Open()

nn::nlib::msgpack::JsonStreamGenerator::Open ( OutputStream stream)
noexcept

ストリームを指定してデータの生成を開始します。

引数
[in]streamJSON又はmsgpackを書きこむストリーム
戻り値
0成功した場合
EINVALstreamNULL、又はJsonStreamGeneratorが未初期化な場合
ENOMEMメモリの確保に失敗した場合

§ StartArray()

nn::nlib::msgpack::JsonStreamGenerator::StartArray ( size_t  count)
noexcept

配列の出力を開始します。

引数
[in]count配列のサイズ
戻り値
JsonStreamGeneratorオブジェクト
説明
msgpackを出力している場合には適切なcountを指定する必要があります。 JSONを出力している場合にはcountは無視されます。

§ StartMap()

nn::nlib::msgpack::JsonStreamGenerator::StartMap ( size_t  count)
noexcept

マップの出力を開始します。

引数
[in]countマップのサイズ
戻り値
JsonStreamGeneratorオブジェクト
説明
msgpackを出力している場合には適切なcountを指定する必要があります。 JSONを出力している場合にはcountは無視されます。

§ String() [1/2]

nn::nlib::msgpack::JsonStreamGenerator::String ( const char *  str)
noexcept

文字列を出力します。

引数
[in]str文字列
戻り値
JsonStreamGeneratorオブジェクト

§ String() [2/2]

template<class STDSTRING >
nn::nlib::msgpack::JsonStreamGenerator::String ( const STDSTRING &  str)
inlinenoexcept

文字列を出力します。

テンプレート引数
STDSTRINGC文字列を返すc_str()メンバ関数を持つクラス
引数
[in]strstd::string等クラスのオブジェクト
戻り値
JsonStreamGeneratorオブジェクト

JsonStreamGenerator.h100 行目に定義があります。

§ Uint16()

nn::nlib::msgpack::JsonStreamGenerator::Uint16 ( uint16_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Uint16Array()

nn::nlib::msgpack::JsonStreamGenerator::Uint16Array ( const uint16_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Uint32()

nn::nlib::msgpack::JsonStreamGenerator::Uint32 ( uint32_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Uint32Array()

nn::nlib::msgpack::JsonStreamGenerator::Uint32Array ( const uint32_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Uint64()

nn::nlib::msgpack::JsonStreamGenerator::Uint64 ( uint64_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Uint64Array()

nn::nlib::msgpack::JsonStreamGenerator::Uint64Array ( const uint64_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

§ Uint8()

nn::nlib::msgpack::JsonStreamGenerator::Uint8 ( uint8_t  num)
noexcept

整数値を出力します。

引数
[in]num整数値
戻り値
JsonStreamGeneratorオブジェクト

§ Uint8Array()

nn::nlib::msgpack::JsonStreamGenerator::Uint8Array ( const uint8_t *  p,
size_t  count 
)
noexcept

整数値の配列を出力します。

引数
[in]p整数値の配列へのポインタ
[in]count整数値の数
戻り値
JsonStreamGeneratorオブジェクト

このクラス詳解は次のファイルから抽出されました: