3 #ifndef INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_
4 #define INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_
8 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
10 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
24 m_Cur =
reinterpret_cast<const uint8_t*
>(p);
35 return operator[](static_cast<size_t>(array_idx));
37 const void* GetRaw(uint32_t* n)
const NLIB_NOEXCEPT
NLIB_NONNULL;
39 const void*
GetPtr() const NLIB_NOEXCEPT {
return m_Cur; }
40 size_t GetSize() const NLIB_NOEXCEPT {
return m_nBytes; }
45 bool IsOk() const NLIB_NOEXCEPT {
return m_Cur != NULL && m_nBytes > 0; }
54 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
55 #undef NLIB_VIS_PUBLIC
56 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
59 #endif // INCLUDE_NN_NLIB_MSGPACK_MPWALKER_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_SAFE_BOOL(class_name, exp)
クラス内に安全なoperator bool()を定義します。 可能であればC++11のexplicit boolを利用します。 ...
MpWalker() noexcept
デフォルトコンストラクタです。
MpWalker operator[](int array_idx) const noexcept
operator[](size_t array_idx) と同様です。
メモリ上に展開されたMessagePackのデータに高速にアクセスします。
bool Init(const void *p, size_t n) noexcept
デフォルトコンストラクタを利用した場合はこの関数で初期化します。
const void * GetPtr() const noexcept
MessagePackデータの現在位置へのポインタを取得します。
~MpWalker() noexcept
デストラクタです。
size_t GetSize() const noexcept
MessagePackデータのサイズを取得します。