fileスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。
[詳解]
#include "nn/nlib/FileStyleUri.h"
fileスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。
- 説明
- URI文字列がチェックされ、分割・正規化されて格納されます。 パスは../や./等が正規化されセグメントに分割されて格納されます。 例えば、
/test/../../../a/b/c
のようなパスは/a/b/c
のように正規化されてから各セグメントに分割されて格納されます(/../は/とみなされる)。 各セグメント内の%
エンコードされた文字はデコードされています。
- このクラスではホスト名やクエリ文字列、フラグメントは無視されます。
- 以下はfileスキームを用いたURIの例です。
- 以下のような文字列は'|'がRFC3986に合致しないのでパースできません。
FileStyleUri.h の 11 行目に定義があります。
nn::nlib::FileStyleUri::AddBaseUri |
( |
const Uri & |
relative, |
|
|
const FileStyleUri & |
base |
|
) |
| |
|
noexcept |
相対パスを基底URIを用いて解決します。
- 引数
-
[in] | relative | 相対パス |
[in] | base | 基底URI |
- 戻り値
- 成功した場合は
true
- 説明
- 成功した場合オブジェクトには絶対パスが格納されます。
nn::nlib::FileStyleUri::ComposeString |
( |
char * |
buf, |
|
|
size_t |
size |
|
) |
| const |
|
noexcept |
template<size_t N>
nn::nlib::FileStyleUri::ComposeString |
( |
char(&) |
buf[N] | ) |
const |
|
inlinenoexcept |
nn::nlib::FileStyleUri::FromUri |
( |
const Uri & |
uri | ) |
|
|
noexcept |
Uri オブジェクトから変換します。
- 引数
-
- 戻り値
- 成功した場合は
true
- 説明
- URIを変換する際にパス以外の文字列は無視されます。
nn::nlib::FileStyleUri::GetNumSegment |
( |
| ) |
const |
|
inlinenoexcept |
nn::nlib::FileStyleUri::GetSegment |
( |
size_t |
i | ) |
const |
|
inlinenoexcept |
インデックスを指定してセグメントを取得します。
- 引数
-
- 戻り値
- セグメントの文字列
- 説明
- セグメントを取得できた場合は文字列へのポインタを、失敗した場合には
NULL
を返します。 セグメント文字列は%
デコードされています。
FileStyleUri.h の 27 行目に定義があります。
nn::nlib::FileStyleUri::IsPathDirectory |
( |
| ) |
const |
|
inlinenoexcept |
パスがディレクトリ形式かどうかを取得します。
- 戻り値
- パスがディレクトリならば
true
- 説明
- パス文字列が'/'で終わっているかどうかを返します。
FileStyleUri.h の 32 行目に定義があります。
nn::nlib::FileStyleUri::Parse |
( |
const char * |
str | ) |
|
|
noexcept |
nn::nlib::FileStyleUri::SetPath |
( |
const char * |
path | ) |
|
|
noexcept |
パスを設定します。
- 引数
-
- 戻り値
- 成功した場合は
true
- 説明
- パスをセグメントに分解して格納します。 デリミタとして'/'を利用します。'\'は利用できません。 また、
%
エンコードを施しておく必要はありません('/'を除く)。
nn::nlib::FileStyleUri::ToUri |
( |
Uri * |
uri | ) |
const |
|
noexcept |
Uri オブジェクトに変換します。
- 引数
-
- 戻り値
- 成功した場合は
true
このクラス詳解は次のファイルから抽出されました: