nlib
|
JSON Patch (RFC-6902)を作成するためのクラスです。 [詳解]
#include "nn/nlib/msgpack/JsonPatch.h"
公開メンバ関数 | |
errno_t | Add (const nlib_utf8_t *path, MpObject *value) noexcept |
JSON Patch文書となる配列に"add"演算を追加します。 [詳解] | |
errno_t | Add (const nlib_utf8_t *path, MpObject &&value) noexcept |
JSON Patch文書となる配列に"add"演算を追加します。 [詳解] | |
errno_t | Remove (const nlib_utf8_t *path) noexcept |
JSON Patch文書となる配列に"remove"演算を追加します。 [詳解] | |
errno_t | Replace (const nlib_utf8_t *path, MpObject *value) noexcept |
JSON Patch文書となる配列に"replace"演算を追加します。 [詳解] | |
errno_t | Replace (const nlib_utf8_t *path, MpObject &&value) noexcept |
JSON Patch文書となる配列に"replace"演算を追加します。 [詳解] | |
errno_t | Move (const nlib_utf8_t *path, const nlib_utf8_t *from) noexcept |
JSON Patch文書となる配列に"move"演算を追加します。 [詳解] | |
errno_t | Copy (const nlib_utf8_t *path, const nlib_utf8_t *from) noexcept |
JSON Patch文書となる配列に"copy"演算を追加します。 [詳解] | |
errno_t | Test (const nlib_utf8_t *path, MpObject *value) noexcept |
JSON Patch文書となる配列に"test"演算を追加します。 [詳解] | |
errno_t | Test (const nlib_utf8_t *path, MpObject &&value) noexcept |
JSON Patch文書となる配列に"test"演算を追加します。 [詳解] | |
errno_t | Export (MpObject *patch) noexcept |
JSON PatchとなるJSONドキュメントを取り出します。 [詳解] | |
std::pair< errno_t, std::unique_ptr< MpObject > > | Export () noexcept |
JSON PatchとなるJSONドキュメントをMpObject の形式で取り出します。 [詳解] | |
コンストラクタ、デストラクタ、及び初期化 | |
JsonPatchBuilder () noexcept | |
デフォルトコンストラクタです。 | |
~JsonPatchBuilder () noexcept | |
デストラクタです。 | |
JsonPatchBuilder (JsonPatchBuilder &&rhs)=default | |
ムーブコンストラクタです。 | |
JsonPatchBuilder & | operator= (JsonPatchBuilder &&rhs)=default |
ムーブ代入演算子です。 | |
JSON Patch (RFC-6902)を作成するためのクラスです。
Add()
, Remove()
, Replace()
, Move()
, Copy()
, Test()
を用いてJSON Patchドキュメントを構築します。 それぞれのメンバ関数は、RFC-6902で定められている"add", "remove", "replace", "move", "copy", "test"演算に対応します。 JSON Patchドキュメントを構築できたら、Export()
でMpObject
として出力します。 出力されたJSON Patchドキュメントは、JsonPatch::Apply()
を用いて適用することができます。 JsonPatch.h の 30 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"add"演算を追加します。
[in] | path | value が設定されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 設定される値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
が指し示すJSONドキュメント内の場所に対して以下の演算のいずれかを実行します。 path
が空文字列であった場合、JSONドキュメント全体をvalue
に置換する。 path
が配列のインデックスを指し示している場合、そこに新たにvalue
を挿入する。 配列の末尾か'-'を示している場合、value
は配列の末尾に追加される。 path
の末尾のキーが存在しない場合は、そこに新たにvalue
がキーで参照される値として追加される。 path
に対応する値が存在する場合、その値がvalue
に置換される。 JsonPatch.h の 52 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"add"演算を追加します。
[in] | path | value が設定されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 設定される値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
が指し示すJSONドキュメント内の場所に対して以下の演算のいずれかを実行します。 path
が空文字列であった場合、JSONドキュメント全体をvalue
に置換する。 path
が配列のインデックスを指し示している場合、そこに新たにvalue
を挿入する。 配列の末尾か'-'を示している場合、value
は配列の末尾に追加される。 path
の末尾のキーが存在しない場合は、そこに新たにvalue
がキーで参照される値として追加される。 path
に対応する値が存在する場合、その値がvalue
に置換される。 JsonPatch.h の 56 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"copy"演算を追加します。
[in] | path | コピー先のJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | from | コピー元のJSONドキュメント内の場所を示したJSON Pointer文字列 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
from
により指定される値を、path
を指定して"add"演算で追加する動作を行います。 この演算が実行される直前に、操作対象のJSONドキュメント内にfrom
に対応する場所が存在している必要があります。 JsonPatch.h の 73 行目に定義があります。
|
noexcept |
JSON PatchとなるJSONドキュメントを取り出します。
[in] | patch | JSON PatchとなるJSONドキュメントが格納されるMpObject |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
patch
に格納されます。 patch
に格納されていたデータは削除され、JsonPatchBuilder
はコンストラクタ実行直後と同じ状態になります。 ENOMEM
は、演算を何も追加していない場合のみに返される可能性があります。
|
noexcept |
|
inlinenoexcept |
JSON Patch文書となる配列に"move"演算を追加します。
[in] | path | 移動先のJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | from | 移動元のJSONドキュメント内の場所を示したJSON Pointer文字列 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
from
を指定して"remove"演算を行って削除した値を、path
を指定して"add"演算で追加する動作を行います。 この演算が実行される直前に、操作対象のJSONドキュメント内にfrom
に対応する場所が存在している必要があります。 JsonPatch.h の 69 行目に定義があります。
|
noexcept |
JSON Patch文書となる配列に"remove"演算を追加します。
[in] | path | 削除されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
が指し示すJSONドキュメント内の場所を削除します。 この演算が実行される直前に、操作対象のJSONドキュメント内にpath
に対応する場所が存在している必要があります。 詳細は以下の通りです。 path
が空文字列であった場合、JSONドキュメント全体を削除する。 path
が配列のインデックスを指し示している場合、指定されたインデックスより先の要素は1つずつ前へずらす。 path
で指定される値と、その値を直接指し示すキーを取り除く。
|
inlinenoexcept |
JSON Patch文書となる配列に"replace"演算を追加します。
[in] | path | value が設定されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 設定される値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
が指し示すJSONドキュメント内の場所の値をvalue
で置き換えます。 この演算は、"remove"演算の直後に同じ場所に対して"add"演算を行うのと機能的に同じです。 JsonPatch.h の 61 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"replace"演算を追加します。
[in] | path | value が設定されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 設定される値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
が指し示すJSONドキュメント内の場所の値をvalue
で置き換えます。 この演算は、"remove"演算の直後に同じ場所に対して"add"演算を行うのと機能的に同じです。 JsonPatch.h の 65 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"test"演算を追加します。
[in] | path | 演算が実行されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 比較対象となる値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
により指定される値とvalue
を比較します。 両者がJSONとして等価である場合に"test"演算が成功します。 JsonPatch.h の 77 行目に定義があります。
|
inlinenoexcept |
JSON Patch文書となる配列に"test"演算を追加します。
[in] | path | 演算が実行されるJSONドキュメント内の場所を示したJSON Pointer文字列 |
[in] | value | 比較対象となる値 |
0 | 成功した場合 |
ENOMEM | メモリ割り当てに失敗した場合 |
path
により指定される値とvalue
を比較します。 両者がJSONとして等価である場合に"test"演算が成功します。 JsonPatch.h の 81 行目に定義があります。
© Nintendo Co., Ltd. All rights reserved.