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

連想配列型を持つMpObjectに対して、キーと値のペアを要素とするアクセスを提供するためのクラスです。 [詳解]

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

公開型

typedef Nlist< MpObjectKv >::iterator iterator
 前方反復子です。
 
typedef Nlist< MpObjectKv >::const_iterator const_iterator
 読み取り専用前方反復子です。
 
typedef MpObjectKvreference
 要素への参照です。
 
typedef const MpObjectKvconst_reference
 要素への読み取り専用参照です。
 
typedef MpObjectKvpointer
 要素へのポインタです。
 
typedef const MpObjectKvconst_pointer
 要素への読み取り専用ポインタです。
 

公開メンバ関数

 MpObjectAsMap (MpObject &obj) noexcept
 
iterator begin () noexcept
 先頭要素を指す反復子を取得します。
 
iterator end () noexcept
 末尾の次を指す反復子を取得します。
 
const_iterator begin () const noexcept
 先頭要素を指す読み取り専用反復子を取得します。
 
const_iterator end () const noexcept
 末尾の次を指す読み取り専用反復子を取得します。
 
reference operator[] (size_t n) noexcept
 n番目の要素を取得します。nは格納されている要素数未満である必要があります。 [詳解]
 
const_reference operator[] (size_t n) const noexcept
 上記関数のconst修飾付き版です。
 
iterator GetByKey (const MpObject &key) noexcept
 keyをキーとして持つキーと値のペアを指す反復子を取得します。 [詳解]
 
const_iterator GetByKey (const MpObject &key) const noexcept
 上記関数のconst修飾付き版です。
 
template<class StringIterator >
iterator GetByKey (StringIterator first, StringIterator last) noexcept
 指定されたキーを持つキーと値のペアを指す反復子を取得します。 [詳解]
 
template<class StringIterator >
const_iterator GetByKey (StringIterator first, StringIterator last) const noexcept
 上記関数のconst修飾付き版です。
 
iterator GetByKey (const nlib_utf8_t *key) noexcept
 指定されたキーを持つキーと値のペアを指す反復子を取得します。 [詳解]
 
const_iterator GetByKey (const nlib_utf8_t *key) const noexcept
 上記関数のconst修飾付き版です。
 
uint32_t GetSize () const noexcept
 格納されている要素数を返します。
 
errno_t Resize (size_t n) noexcept
 連想配列の要素数を変更します。 [詳解]
 
errno_t PushBack (MpObjectKv &&rhs) noexcept
 連想配列の末尾にキーと値のペアを追加します。rhsの内容はムーブされます。 [詳解]
 
errno_t PushBack (const nlib_utf8_t *key, MpObject &&value) noexcept
 連想配列の末尾にキーと値のペアを追加します。valueの内容はムーブされます。 [詳解]
 
errno_t PopBack () noexcept
 末尾の要素を取り除きます。 [詳解]
 
errno_t Erase (iterator it) noexcept
 連想配列のitで指されるキーと値のペアを取り除きます。 [詳解]
 
errno_t Erase (size_t n) noexcept
 連想配列のn番目のキーと値のペアを取り除きます。 [詳解]
 
errno_t Erase (const nlib_utf8_t *key) noexcept
 連想配列からkeyをキーとして持つ、キーと値のペアを1つ取り除きます。 [詳解]
 

詳解

連想配列型を持つMpObjectに対して、キーと値のペアを要素とするアクセスを提供するためのクラスです。

説明
連想配列用にbegin(),end()関数が定義されているので、以下のようにループを記述することができるようになります。
const char* json = R"({"key1" : 1, "key2" : 2, "key3" : 3})";
auto obj = ToMpObject(json);
for (auto& item : obj->AsMap()) {
int val;
item.second.Unbox(&val);
nlib_printf("%s : %d\n", item.first.GetString(), val);
}
/*
Output:
key1 : 1
key2 : 2
key3 : 3
*/

MpObject.h534 行目に定義があります。

構築子と解体子

◆ MpObjectAsMap()

nn::nlib::msgpack::MpObjectAsMap::MpObjectAsMap ( MpObject obj)
inlineexplicitnoexcept
引数
[in]obj連想配列としてアクセスするMpObjectobj.IsMap()が真である必要があります。

MpObject.h546 行目に定義があります。

関数詳解

◆ Erase() [1/3]

nn::nlib::msgpack::MpObjectAsMap::Erase ( iterator  it)
noexcept

連想配列のitで指されるキーと値のペアを取り除きます。

引数
[in]itキーと値のペアを指す反復子
戻り値
0成功した場合
ERANGEitが範囲外の場合

◆ Erase() [2/3]

nn::nlib::msgpack::MpObjectAsMap::Erase ( size_t  n)
inlinenoexcept

連想配列のn番目のキーと値のペアを取り除きます。

引数
[in]n0以上の整数
戻り値
0成功した場合
ERANGEnが範囲外の場合

MpObject.h601 行目に定義があります。

◆ Erase() [3/3]

nn::nlib::msgpack::MpObjectAsMap::Erase ( const nlib_utf8_t key)
noexcept

連想配列からkeyをキーとして持つ、キーと値のペアを1つ取り除きます。

引数
[in]keyキー文字列
戻り値
0成功した場合
ENOENT対応するキーと値のペアが存在しなかった場合

◆ GetByKey() [1/3]

nn::nlib::msgpack::MpObjectAsMap::GetByKey ( const MpObject key)
noexcept

keyをキーとして持つキーと値のペアを指す反復子を取得します。

引数
[in]key探索対象のキー
戻り値
キーと値のペアを指す反復子
説明
要素が存在しない場合は、end()を返します。 また、戻り値のキーとなるMpObjectkeyとは同一ではなく、連想配列に格納されているものです。

◆ GetByKey() [2/3]

template<class StringIterator >
MpObjectAsMap::iterator nn::nlib::msgpack::MpObjectAsMap::GetByKey ( StringIterator  first,
StringIterator  last 
)
noexcept

指定されたキーを持つキーと値のペアを指す反復子を取得します。

テンプレート引数
StringIteratorstd::string::iteratorのような文字列に対する反復子
引数
[in]firstキー文字列の先頭
[in]lastキー文字列の終端
戻り値
キーと値のペアを指す反復子
説明
要素が存在しない場合は、end()を返します。 同じキーを持つ要素が複数ある場合は、先頭に最も近いものを返します。

MpObject.h802 行目に定義があります。

◆ GetByKey() [3/3]

nn::nlib::msgpack::MpObjectAsMap::GetByKey ( const nlib_utf8_t key)
noexcept

指定されたキーを持つキーと値のペアを指す反復子を取得します。

引数
[in]keyキー文字列
戻り値
キーと値のペアを指す反復子
説明
要素が存在しない場合は、end()を返します。 同じキーを持つ要素が複数ある場合は、先頭に最も近いものを返します。

◆ operator[]()

nn::nlib::msgpack::MpObjectAsMap::operator[] ( size_t  n)
inlinenoexcept

n番目の要素を取得します。nは格納されている要素数未満である必要があります。

引数
[in]n要素の位置
戻り値
n番目の要素への参照

MpObject.h551 行目に定義があります。

◆ PopBack()

nn::nlib::msgpack::MpObjectAsMap::PopBack ( )
inlinenoexcept

末尾の要素を取り除きます。

戻り値
0ならば成功。0以外の場合はエラー

MpObject.h592 行目に定義があります。

◆ PushBack() [1/2]

nn::nlib::msgpack::MpObjectAsMap::PushBack ( MpObjectKv &&  rhs)
inlinenoexcept

連想配列の末尾にキーと値のペアを追加します。rhsの内容はムーブされます。

引数
[in,out]rhs連想配列の末尾に追加するキーと値のペア
戻り値
0ならば成功。0以外の場合はエラー

MpObject.h578 行目に定義があります。

◆ PushBack() [2/2]

nn::nlib::msgpack::MpObjectAsMap::PushBack ( const nlib_utf8_t key,
MpObject &&  value 
)
inlinenoexcept

連想配列の末尾にキーと値のペアを追加します。valueの内容はムーブされます。

引数
[in]keyキー
[in,out]valueキーに対応する値
戻り値
0ならば成功。0以外の場合はエラー

MpObject.h584 行目に定義があります。

◆ Resize()

nn::nlib::msgpack::MpObjectAsMap::Resize ( size_t  n)
inlinenoexcept

連想配列の要素数を変更します。

引数
[in]nリサイズ後のサイズ
戻り値
0ならば成功。0以外の場合はエラー

MpObject.h569 行目に定義があります。


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