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

JSON SchemaをJsonSchemaValidatorで利用できるバイトコード形式に変換します。 [詳解]

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

クラス

struct  Detail
 JSON Schemaの変換に失敗した場合、pathというメンバに変換に失敗した場所についての文字列が書き込まれます。 [詳解]
 

公開型

enum  Result {
  kOk = 0,
  kInvalidParam,
  kAlreadyInitialized,
  kOutOfMemory,
  kInvalidSchema,
  kFileNotFound,
  kIoError,
  kUriError,
  kBufferSizeNotEnough
}
 関数の実行結果です。 [詳解]
 

公開メンバ関数

constexpr JsonSchemaConverter () noexcept
 デフォルトコンストラクタです。
 
 ~JsonSchemaConverter () noexcept
 デストラクタです。
 
Result Init (const JsonSchemaConverterSettings &settings) noexcept
 オブジェクトを初期化します。 [詳解]
 
Result Init () noexcept
 JsonSchemaConverterSettingsをデフォルトにして初期化します。
 
void Reset () noexcept
 オブジェクトをデフォルトコンストラクタの実行後と同じ状態に設定します。
 
Result Convert (const char *uri, Detail *detail) noexcept
 JSON SchemaをJsonSchemaValidatorが利用できる形式に変換します。 [詳解]
 
Result Convert (MpObject *schema, Detail *detail) noexcept
 JSON SchemaをJsonSchemaValidatorが利用できる形式に変換します。 [詳解]
 
Result Export (size_t *written, nlib_byte_t *buf, size_t bufsize) const noexcept
 バイトコードに変換したJSON Schemaを書き込みます。 [詳解]
 
template<size_t N>
Result Export (size_t *written, nlib_byte_t(&buf)[N]) const noexcept
 バイトコードに変換したJSON Schemaを書き込みます。 [詳解]
 

詳解

JSON SchemaをJsonSchemaValidatorで利用できるバイトコード形式に変換します。

説明
JSON Schemaについての説明はJsonSchemaValidatorの説明を参照してください。

JsonSchema.h70 行目に定義があります。

列挙型メンバ詳解

◆ Result

関数の実行結果です。

列挙値
kOk 

成功しました。

kInvalidParam 

引数が無効です。

kAlreadyInitialized 

既に初期化済みです。

kOutOfMemory 

メモリの確保に失敗しました。

kInvalidSchema 

無効なJSON Schemaです。

kFileNotFound 

指定されたファイルが見つかりませんでした。

kIoError 

ファイルの読み込み中に失敗しました。

kUriError 

URIの処理でエラーが発生しました。

kBufferSizeNotEnough 

バッファ・サイズが十分ではありませんでした。

JsonSchema.h72 行目に定義があります。

関数詳解

◆ Convert() [1/2]

nn::nlib::msgpack::JsonSchemaConverter::Convert ( const char *  uri,
Detail detail 
)
noexcept

JSON SchemaをJsonSchemaValidatorが利用できる形式に変換します。

引数
[in]uriJSON SchemaとなるJSONを指し示す絶対URI
[in]detailNULLでない場合は、エラーが発生した場合の追加情報を得ることができます。
戻り値
kOk変換が成功した場合
kOutOfMemoryメモリの確保に失敗した場合
kInvalidSchemaスキーマが無効だった場合
kFileNotFound読み込むファイルが存在しなかった場合
kIoErrorファイルの読み取りが失敗した場合
kUriError無効なURIが見つかった場合やuriが相対URIだった場合
説明
uriで参照されるJSON Schemaを変換します。 また、URIから実際のファイルパスへの変換はJsonSchemaConverterSettings::uri_mapperを利用して行われます。 uriNULLの場合は、"nlibpath:///jsonschema/schema.json"であるものとして解釈されます。

◆ Convert() [2/2]

nn::nlib::msgpack::JsonSchemaConverter::Convert ( MpObject schema,
Detail detail 
)
noexcept

JSON SchemaをJsonSchemaValidatorが利用できる形式に変換します。

引数
[in,out]schema変換されるJSON Schema。内部の値が変更されうることに注意してください。
[in]detailNULLでない場合は、エラーが発生した場合の追加情報を得ることができます。
戻り値
kOk変換が成功した場合
kOutOfMemoryメモリの確保に失敗した場合
kInvalidParamschemaNULLだった場合
kInvalidSchemaスキーマが無効だった場合
kFileNotFound読み込むファイルが存在しなかった場合
kIoErrorファイルの読み取りが失敗した場合
kUriError無効なURIが見つかった場合
説明
メモリ上のJSON Schemaを変換します。 この関数を利用した場合、JSON SchemaのURIは"nlibpath:///jsonschema/path/to/schema.json"であるものとして変換が行われます。 JSON Schema内部から"$ref"により他のJSON Schemaを参照している場合にこのことに注意が必要です。

◆ Export() [1/2]

nn::nlib::msgpack::JsonSchemaConverter::Export ( size_t *  written,
nlib_byte_t buf,
size_t  bufsize 
) const
noexcept

バイトコードに変換したJSON Schemaを書き込みます。

引数
[out]written書き込まれたバイト数
[out]bufデータが書き込まれるバッファ
[in]bufsizeバッファ・サイズ
戻り値
0成功した場合
kInvalidParamwritten又はbufNULLだった場合
kOutOfMemoryメモリの確保に失敗した場合
kBufferSizeNotEnoughバッファ・サイズが十分でなかった場合
説明
JSON Schemaをmsgpack形式のバイトコードにしてメモリに書き込みます。 その後、書き込まれたバイトコードをJsonSchemaValidator::Init()に渡して検証に利用することができます。

◆ Export() [2/2]

template<size_t N>
nn::nlib::msgpack::JsonSchemaConverter::Export ( size_t *  written,
nlib_byte_t(&)  buf[N] 
) const
inlinenoexcept

バイトコードに変換したJSON Schemaを書き込みます。

テンプレート引数
Nバッファ・サイズ
引数
[out]written書き込まれたバイト数
[out]bufデータが書き込まれるバッファ
戻り値
0成功した場合
kOutOfMemoryメモリの確保に失敗した場合
kBufferSizeNotEnoughバッファ・サイズが十分でなかった場合

JsonSchema.h99 行目に定義があります。

◆ Init()

nn::nlib::msgpack::JsonSchemaConverter::Init ( const JsonSchemaConverterSettings settings)
noexcept

オブジェクトを初期化します。

引数
[in]settings変換オプションを指定するための構造体
戻り値
kOk成功した場合
kAlreadyInitialized既にオブジェクトが初期化済みだった場合
kOutOfMemoryメモリの確保に失敗した場合

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