URI Template(RFC 6570, Level3)をサポートします。
[詳解]
#include "nn/nlib/UriTemplate.h"
|
static bool | IsUriTemplate (const char *first, const char *last) noexcept |
| 文字列がURI Template(Level 3まで)であるかどうかを判定します。 [詳解]
|
|
static bool | IsUriTemplate (const char *str) noexcept |
| 上記関数の引数省略版で、ヌル終端する文字列を受け取ります。
|
|
URI Template(RFC 6570, Level3)をサポートします。
- 説明
- URIテンプレートとは、RFC 6570で定義された URIに'{'と'}'で囲まれた変数を交ぜ書きにしたテキストです。 変数を実体化することにより、実際のURIが簡単に作成できます。
UriTemplate
クラスはRFC6570のLevel1, Level2, Level3をサポートしています。
- 以下がコード例です。
SUCCEED_IF(e == 0);
SUCCEED_IF(e == 0);
SUCCEED_IF(e == 0);
char str[256];
SUCCEED_IF(rval.first == 0);
- URI Templateの詳細についてはRFC 6570のテキストを参照してください。
- 参照
- https://tools.ietf.org/html/rfc6570 (RFC6570)
- 各種例:
- misc/uri/uri.cpp.
UriTemplate.h の 29 行目に定義があります。
◆ IsUriTemplate()
nn::nlib::UriTemplate::IsUriTemplate |
( |
const char * |
first, |
|
|
const char * |
last |
|
) |
| |
|
staticnoexcept |
文字列がURI Template(Level 3まで)であるかどうかを判定します。
- 引数
-
[in] | first | 検査する文字列の先頭 |
[in] | last | 検査する文字列の末尾 |
- 戻り値
-
文字列がURI | Templateである場合はtrue 、そうでなければfalse |
◆ Resolve() [1/2]
nn::nlib::UriTemplate::Resolve |
( |
size_t * |
written, |
|
|
char * |
str, |
|
|
size_t |
n |
|
) |
| const |
|
noexcept |
URIテンプレートに値を代入した文字列をstr
に書き込みます。
- 引数
-
[out] | written | 書き込まれた文字数(ヌル文字を含まない) |
[out] | str | 文字列が格納されるバッファ |
[in] | n | バッファ・サイズ |
- 戻り値
- 0ならば成功
◆ Resolve() [2/2]
nn::nlib::UriTemplate::Resolve |
( |
char * |
str, |
|
|
size_t |
n |
|
) |
| const |
|
inlinenoexcept |
URIテンプレートに値を代入した文字列をstr
に書き込みます。
- 引数
-
[out] | str | 文字列が格納されるバッファ |
[in] | n | バッファ・サイズ |
- 戻り値
- エラー値と書き込まれた文字数(ヌル文字を含まない)のペア
UriTemplate.h の 50 行目に定義があります。
◆ SetParameter()
nn::nlib::UriTemplate::SetParameter |
( |
const char * |
param, |
|
|
const char * |
value |
|
) |
| |
|
noexcept |
パラメータとその値を設定します。
- 引数
-
- 戻り値
-
0 | エラーは発生していません。 |
EINVAL | param がNULL か空文字列の場合 |
- 説明
- 値に空文字列を入れた場合と
NULL
を入れた場合の動作は異なります。 NULL
の場合は値が未定義となります。
◆ SetTemplate()
nn::nlib::UriTemplate::SetTemplate |
( |
const char * |
first, |
|
|
const char * |
last |
|
) |
| |
|
noexcept |
テンプレートを設定します。
- 引数
-
[in] | first | テンプレート文字列の先頭 |
[in] | last | テンプレート文字列の末尾 |
- 戻り値
-
0 | エラーは発生していません。 |
EINVAL | strがNULL の場合 |
EILSEQ | '{}' 内の変数リストが不正な場合 |
ERANGE | テンプレート文字列が長すぎる場合 |
ENOMEM | 内部でメモリの確保に失敗した場合 |
- 説明
- テンプレートを設定します。
%
エンコードが必要な文字は適宜%
エンコードされます。
このクラス詳解は次のファイルから抽出されました: