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

MessagePack形式のデータをストリームに書き込みます。 [詳解]

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

公開メンバ関数

bool Flush () noexcept
 内部ストリームへの書き込みをフラッシュします。 [詳解]
 
bool Write (const char *str) noexcept
 文字列を書き込みます。
 
template<uint32_t n>
bool Write (const char(&str)[n]) noexcept
 Write(const T (&vec)[n]) を御覧ください。
 
template<class T , size_t n>
bool Write (const T(&vec)[n])
 配列又は文字列を書き込みます。 [詳解]
 
template<class T >
bool Write (const T &tp)
 オブジェクトをシリアライズしてストリームに書き込みます。 [詳解]
 
bool Write (const void *p, size_t n) noexcept
 p に格納されているn バイトのバイト列を書き込みます。
 
bool WriteArrayCount (uint32_t n) noexcept
 配列のヘッダ情報を書き込みます。 [詳解]
 
bool WriteMapCount (uint32_t n) noexcept
 連想配列のヘッダ情報を書き込みます。 [詳解]
 
bool WriteRawCount (uint32_t n) noexcept
 バイト列データのヘッダ情報を書き込みます。 [詳解]
 
bool WriteRawBody (const void *p, uint32_t n) noexcept
 バイト列データの本体を書き込みます。 [詳解]
 
bool Write (const MpObject &obj) noexcept
 Write(const T& tp) を御覧ください。
 
OutputStreamGetStream () noexcept
 Init()で設定したベースストリームを取得します。 [詳解]
 
基本的なメンバ関数
 MpWriter () noexcept
 デフォルトコンストラクタです。
 
 ~MpWriter () noexcept
 デストラクタです。
 
初期化と終了
bool Init (OutputStream *stream) noexcept
 ストリームを設定してオブジェクトを初期化します。 [詳解]
 
bool Close () noexcept
 MpWriterをクローズします。 [詳解]
 
エラーチェック
void SetError (errno_t e) noexcept
 エラーを設定します。 [詳解]
 
errno_t GetErrorValue () const noexcept
 エラー値を取得します。 [詳解]
 
 operator bool () const
 エラーがなければtrueを返します。
 

詳解

MessagePack形式のデータをストリームに書き込みます。

説明
MpWriterは、Box化されたオブジェクト(MpObject)と、ネイティブ型の書き込みに対応しています。

MpWriter.h30 行目に定義があります。

関数詳解

nn::nlib::msgpack::MpWriter::Close ( )
inlinenoexcept

MpWriterをクローズします。

戻り値
成功した場合はtrue
説明
MpWriterをクローズして、ベースストリームをデタッチします。 この際、ベースストリームはクローズされません。
Init()メンバ関数を再び利用することでオブジェクトを再利用することができます。

MpWriter.h42 行目に定義があります。

nn::nlib::msgpack::MpWriter::Flush ( )
inlinenoexcept

内部ストリームへの書き込みをフラッシュします。

戻り値
成功した場合はtrue

MpWriter.h35 行目に定義があります。

nn::nlib::msgpack::MpWriter::GetErrorValue ( ) const
inlinenoexcept

エラー値を取得します。

戻り値
0エラーは発生していません。
EILSEQMpObjectが不正である。
EINVAL引数にエラーがあった。
EEXIST初期化されたJsonWriterを再度初期化しようとした。
EIOベースストリームでエラーが発生した。
EBADF未初期化のJsonReaderを利用しようとした。

MpWriter.h52 行目に定義があります。

nn::nlib::msgpack::MpWriter::GetStream ( )
inlinenoexcept

Init()で設定したベースストリームを取得します。

戻り値
ストリームへのポインタを返します。

MpWriter.h73 行目に定義があります。

nn::nlib::msgpack::MpWriter::Init ( OutputStream stream)
noexcept

ストリームを設定してオブジェクトを初期化します。

引数
[in]stream出力ストリーム
戻り値
成功した場合はtrue
nn::nlib::msgpack::MpWriter::SetError ( errno_t  e)
inlinenoexcept

エラーを設定します。

引数
[in]e設定するエラー値(0以外はエラー)
説明
既にエラーが設定されている場合は何もしません。

MpWriter.h49 行目に定義があります。

template<class T, size_t n>
bool nn::nlib::msgpack::MpWriter::Write ( const T(&)  vec[n])

配列又は文字列を書き込みます。

引数
[in]vec書き込まれる配列又は文字列
テンプレート引数
T要素の型
n要素の数
戻り値
成功した場合はtrue
説明
Tがchar型以外の場合は配列を、Tがchar型の場合は文字列として書き込みます。 文字列の場合はヌル文字で終端している必要があります。

MpWriter.h122 行目に定義があります。

template<class T>
bool nn::nlib::msgpack::MpWriter::Write ( const T &  tp)
inline

オブジェクトをシリアライズしてストリームに書き込みます。

テンプレート引数
T書きこむオブジェクトの型
引数
[in]tpストリームに書きこむオブジェクト
戻り値
成功した場合はtrue
説明
オブジェクトをシリアライズしてストリームに書き込みます。 成功した場合はtrueを返します。失敗した場合はエラーをセットしてfalseを返します。
Tの型により動作は異なります。デフォルトでは以下の型のシリアライズに対応しています。 MpWrite()関数を利用することにより、ユーザー定義型のシリアライズが可能です。
  • nil, bool
  • 8bitから64bitまでの符号・符号無し整数
  • float, double
  • C文字列, std::string
  • std::pair
  • std::vector
  • Nlist
  • std::map
  • MpObject

MpWriter.h133 行目に定義があります。

nn::nlib::msgpack::MpWriter::WriteArrayCount ( uint32_t  n)
noexcept

配列のヘッダ情報を書き込みます。

引数
[in]n配列の個数
戻り値
成功した場合はtrue
説明
配列のヘッダ情報を書き込みます。 成功した場合はtrueを返します。失敗した場合はエラーをセットしてfalseを返します。 具体的には以下に記述されているようなデータを書き込みます。
参照
http://wiki.msgpack.org/display/MSGPACK/Format+specification#Formatspecification-Arrays
nn::nlib::msgpack::MpWriter::WriteMapCount ( uint32_t  n)
noexcept

連想配列のヘッダ情報を書き込みます。

引数
[in]n配列の個数
戻り値
成功した場合はtrue
説明
連想配列のヘッダ情報を書き込みます。 成功した場合はtrueを返します。失敗した場合はエラーをセットしてfalseを返します。 具体的には以下に記述されているようなデータを書き込みます。
参照
http://wiki.msgpack.org/display/MSGPACK/Format+specification#Formatspecification-Maps
nn::nlib::msgpack::MpWriter::WriteRawBody ( const void *  p,
uint32_t  n 
)
noexcept

バイト列データの本体を書き込みます。

引数
[in]pバイト列へのポインタ
[in]nバイト列のサイズ(バイト単位)
戻り値
成功した場合はtrue
説明
バイト列の本体を書き込みます。 成功した場合はtrueを返します。失敗した場合はエラーをセットしてfalseを返します。 n は直前で実行したWriteRawCount()で指定した値と一致している必要があります。
nn::nlib::msgpack::MpWriter::WriteRawCount ( uint32_t  n)
noexcept

バイト列データのヘッダ情報を書き込みます。

引数
[in]nバイト列のサイズ(バイト単位)
戻り値
成功した場合はtrue
説明
バイト列のヘッダ情報を書き込みます。 成功した場合はtrueを返します。失敗した場合はエラーをセットしてfalseを返します。 具体的には以下に記述されているようなデータを書き込みます。
参照
http://wiki.msgpack.org/display/MSGPACK/Format+specification#Formatspecification-Rawbytes

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