nlib
|
MessagePack形式のデータをストリームから読み込みます。 [詳解]
#include "nn/nlib/msgpack/MpReader.h"
公開メンバ関数 | |
初期化と終了 | |
bool | Init (InputStream *istr, const MpReaderSettings &settings) noexcept |
設定用パラメータを指定してオブジェクトを初期化します。 [詳解] | |
bool | Init (InputStream *istr) noexcept |
オブジェクトを初期化します。 [詳解] | |
bool | Close () noexcept |
MpReader をクローズします。 [詳解] | |
エラーチェック | |
void | SetError (errno_t e) noexcept |
エラーを設定します。 [詳解] | |
errno_t | GetErrorValue () const noexcept |
発生したエラーを取得します。 [詳解] | |
operator bool () const | |
エラーがなければtrue を返します。 | |
低レベルの読み込みと変換 | |
オブジェクトへの型変換を伴わない読み込みと型変換を行うメンバ関数です。 | |
bool | GetNextValue () noexcept |
次の値データを読み込みます。 [詳解] | |
bool | GetNextArrayNum (size_t *num) noexcept |
配列のサイズデータを読み込みます。 [詳解] | |
bool | GetNextMapNum (size_t *num) noexcept |
連想配列のサイズデータを読み込みます。 [詳解] | |
bool | GetNextRawNum (size_t *num) noexcept |
バイト列のサイズデータを読み込みます。 [詳解] | |
bool | GetNextRawBody (void *p, size_t num) noexcept |
バイト列を読み込みます。 [詳解] | |
template<class T > | |
errno_t | Convert (T *v) |
GetNextValue() で読み込まれたデータを与えられた型に変換します。 [詳解] | |
高レベルの読み込み | |
template<class T > | |
bool | Read (T v) |
ストリームからデータを読み込み、vに設定します。 [詳解] | |
template<size_t n> | |
bool | Read (char(&v)[n]) noexcept |
Read(T (&vec)[n]) を御覧ください。 | |
template<class T , size_t n> | |
bool | Read (T(&v)[n]) |
配列又は文字列を読み込みます。 [詳解] | |
bool | Read (char *v, size_t n) noexcept |
ストリームから文字列を読み込みv に設定します。 [詳解] | |
bool | Read (void *v, size_t n) noexcept |
ストリームからn バイトのバイト列を読み込みv に設定します。 [詳解] | |
template<class T > | |
bool | Read (T *v, size_t n) |
ストリームから配列データを読み込み、vに設定します。 [詳解] | |
bool | Read (MpObject *obj) noexcept |
Read(T v) を御覧ください。 | |
bool | SkipMpObject () noexcept |
ストリームからMpObject 1つぶんのデータを読み飛ばします。 [詳解] | |
bool | CheckString (const char *key, size_t keylen) noexcept |
ストリームから文字列1つぶんのデータを読み、key と一致するか調べます。 [詳解] | |
bool | CheckString (const char *key) noexcept |
CheckString(key, nlib_strlen(key)) を実行します。 | |
static bool | Read (MpObject *obj, const void *p, size_t n, const MpReaderSettings &settings) noexcept |
MpReader オブジェクトを構築して、p からMpObject を設定します。 [詳解] | |
static bool | Read (MpObject *obj, const void *p, size_t n) noexcept |
Read(MpObject* obj, const void* p, size_t n, const MpReaderSettings& settings)をsettings をデフォルトに設定して実行します。 | |
MessagePack形式のデータをストリームから読み込みます。
MpReader
は、Box化されたオブジェクトと、ネイティブ型の読み込みに対応しています。 MpReader.h の 43 行目に定義があります。
|
noexcept |
ストリームから文字列1つぶんのデータを読み、key
と一致するか調べます。
[in] | key | 文字列 |
[in] | keylen | 文字列の長さ |
key
と一致した場合はtrue
。一致しないかエラーが発生した場合はfalse
key
と一致した場合でも一致しない場合でも、ストリームの先頭は次の位置に移動します。 つまり、もし連想配列の内部である場合、ストリームの先頭はキーに対応する要素の位置に移動します。
|
inlinenoexcept |
MpReader
をクローズします。
true
MpReader
をクローズして、ベースストリームをデタッチします。 この際、ベースストリームはクローズされません。 Init()
メンバ関数を再び利用することでオブジェクトを再利用することができます。 MpReader.h の 52 行目に定義があります。
|
inline |
GetNextValue()
で読み込まれたデータを与えられた型に変換します。
T | 変換先の型 |
[out] | v | 変換されたデータの格納場所 |
0 | エラーは発生していません。 |
EFAULT | 型変換が不可能な場合に返ります。v には何も設定されません。 |
EOVERFLOW | オーバーフローが発生した場合に返ります。サイズの大きな型に格納すれば解消できます。 |
EINVAL | vがNULL の場合 |
EIDRM | 違う種類の型にキャストされている場合に返されます(e.g. bool から数値型) |
MpReader
内部のエラー状態を設定しません。 MpReader.h の 74 行目に定義があります。
|
inlinenoexcept |
発生したエラーを取得します。
0 | エラーは発生していません。 |
EILSEQ | MesagePackとしては正しくないデータに遭遇した(パースエラー)。 |
EOF | 予期しないEOF に遭遇した(パースエラー)。 |
EINVAL | 引数にエラーがあった。 |
EEXIST | 初期化されたMpReader を再度初期化しようとした。 |
EIO | ベースストリームでエラーが発生した。 |
EBADF | 未初期化のMpReader を利用しようとした。 |
E2BIG | 配列サイズ等が大きすぎた。 |
ENOMEM | メモリの取得に失敗した。 |
MpReader.h の 66 行目に定義があります。
|
noexcept |
配列のサイズデータを読み込みます。
[out] | num | 配列の数が設定されるポインタ |
true
num
に設定します。 エラーが発生した場合は、エラーを設定しfalse
を返します。 false
を返しエラーは設定されません。 この場合は、ストリームからは何も読み込まれていません。
|
noexcept |
連想配列のサイズデータを読み込みます。
[out] | num | 連想配列の数が設定されるポインタ |
true
num
に設定します。 エラーが発生した場合は、エラーを設定しfalse
を返します。 false
を返しエラーは設定されません。 この場合は、ストリームからは何も読み込まれていません。
|
noexcept |
|
noexcept |
バイト列のサイズデータを読み込みます。
[out] | num | バイト列のサイズが設定されるポインタ |
true
num
に設定します。 エラーが発生した場合は、エラーを設定しfalse
を返します。 false
を返しエラーは設定されません。 この場合は、ストリームからは何も読み込まれていません。
|
noexcept |
次の値データを読み込みます。
true
false
を返します。 false
を返しエラーは設定されません。 この場合は、ストリームからは何も読み込まれていません。
|
noexcept |
設定用パラメータを指定してオブジェクトを初期化します。
[in] | istr | MpReader に設定する入力ストリーム |
[in] | settings | MessagePackデシリアライズにおける各種設定 |
true
|
inlinenoexcept |
|
staticnoexcept |
|
inline |
ストリームからデータを読み込み、vに設定します。
T | 読み込むオブジェクトの型のポインタ型 |
[out] | v | 読み込んだデータが格納されるオブジェクト |
true
MpRead()
関数を特殊化することでユーザー型に対応することができます。
MpReader.h の 79 行目に定義があります。
|
inline |
配列又は文字列を読み込みます。
[in] | vec | 配列 |
T | 要素の型 |
n | 要素の数 |
true
ならば成功char
型以外の場合は配列を、Tがchar
型の場合は文字列として読み込みます。 文字列の場合はヌル文字を付加して終端します。 MpReader.h の 89 行目に定義があります。
|
noexcept |
ストリームから文字列を読み込みv
に設定します。
[out] | v | 文字列へのポインタ |
[in] | n | 文字列のバッファサイズ(終端のヌル文字を含む) |
true
n
- 1バイトまで読み込みます。 文字列の長さがn
以上だった場合はエラーにE2BIG
を設定してfalse
を返します。 成功した場合、文字列の末尾には必ず'\0'が書き込まれます。
|
noexcept |
ストリームからn
バイトのバイト列を読み込みv
に設定します。
[out] | v | バイト列が格納されるポインタ |
[in] | n | バイト列 |
true
n
バイト読み込みます。 バイト列のサイズがn
バイトでない場合はエラーにEILSEQ
を設定してfalse
を返します。 bool nn::nlib::msgpack::MpReader::Read | ( | T * | v, |
size_t | n | ||
) |
ストリームから配列データを読み込み、vに設定します。
T | 読み込むオブジェクトの型のポインタ型 |
[out] | v | 読み込んだデータが格納されるオブジェクト配列へのポインタ |
[in] | n | 配列のサイズ |
true
MpReader.h の 184 行目に定義があります。
|
inlinenoexcept |
|
noexcept |
© 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.