16 #ifndef INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_ 17 #define INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_ 20 #include "nn/nlib/Swap.h" 22 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 23 #undef NLIB_VIS_PUBLIC 24 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 38 cur_ =
reinterpret_cast<const uint8_t*
>(p);
49 return operator[](static_cast<size_t>(array_idx));
52 const void*
GetPtr() const NLIB_NOEXCEPT {
return cur_; }
53 size_t GetSize() const NLIB_NOEXCEPT {
return size_; }
75 bool IsOk()
const NLIB_NOEXCEPT {
return cur_ != NULL; }
84 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS) 85 #undef NLIB_VIS_PUBLIC 86 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 89 #endif // INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_ #define NLIB_SAFE_BOOL(class_name, exp)
クラス内に安全なoperator bool()を定義します。 可能であればC++11のexplicit boolを利用します。 ...
MpWalker() noexcept
デフォルトコンストラクタです。
size_t GetSize() const noexcept
MessagePackデータのサイズを取得します。
MpWalker operator[](int array_idx) const noexcept
operator[](size_t array_idx) と同様です。
const void * GetPtr() const noexcept
MessagePackデータの現在位置へのポインタを取得します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
メモリ上に展開されたMessagePackのデータに高速にアクセスします。
bool Init(const void *p, size_t n) noexcept
デフォルトコンストラクタを利用した場合はこの関数で初期化します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
~MpWalker() noexcept
デストラクタです。