nlib
FileStyleUri.h
[詳解]
1 
2 #pragma once
3 #ifndef INCLUDE_NN_NLIB_FILESTYLEURI_H_
4 #define INCLUDE_NN_NLIB_FILESTYLEURI_H_
5 
6 #include "nn/nlib/Config.h"
7 #include "nn/nlib/Uri.h"
8 
9 NLIB_NAMESPACE_BEGIN
10 
12  public:
13  FileStyleUri() NLIB_NOEXCEPT { this->Reset(); }
15  NLIB_VIS_PUBLIC bool FromUri(const Uri& uri) NLIB_NOEXCEPT;
16  NLIB_VIS_PUBLIC bool ToUri(Uri* uri) const NLIB_NOEXCEPT NLIB_NONNULL;
17  NLIB_VIS_PUBLIC bool Parse(const char* str) NLIB_NOEXCEPT NLIB_NONNULL;
18  NLIB_VIS_PUBLIC bool ComposeString(char* buf, size_t size) const NLIB_NOEXCEPT NLIB_NONNULL;
19  template <size_t N>
20  bool ComposeString(char (&buf)[N]) const NLIB_NOEXCEPT {
21  return this->ComposeString(buf, N);
22  }
23  NLIB_VIS_PUBLIC bool SetPath(const char* path) NLIB_NOEXCEPT;
24  size_t GetNumSegment() const NLIB_NOEXCEPT {
25  return m_Segments.GetNumSegment();
26  }
27  const char* GetSegment(size_t i) const NLIB_NOEXCEPT {
28  return m_Segments.GetSegment(i);
29  }
30  NLIB_VIS_PUBLIC bool AddBaseUri(const Uri& relative, const FileStyleUri& base) NLIB_NOEXCEPT;
31  void Reset() NLIB_NOEXCEPT { m_Segments.Reset(); }
32  bool IsPathDirectory() const NLIB_NOEXCEPT {
33  return m_Segments.IsDirectory();
34  }
35 
36  private:
37  detail::Segments m_Segments;
39 };
40 
41 NLIB_NAMESPACE_END
42 
43 #endif // INCLUDE_NN_NLIB_FILESTYLEURI_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition: Platform.h:2151
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_NONNULL
全ての引数にNULLを指定することができないことを示します。
Definition: Platform_unix.h:66
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
Definition: Config.h:126
fileスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。
Definition: FileStyleUri.h:11
const char * GetSegment(size_t i) const noexcept
インデックスを指定してセグメントを取得します。
Definition: FileStyleUri.h:27
size_t GetNumSegment() const noexcept
格納されているセグメントの数を取得します。
Definition: FileStyleUri.h:24
bool IsPathDirectory() const noexcept
パスがディレクトリ形式かどうかを取得します。
Definition: FileStyleUri.h:32
void Reset() noexcept
オブジェクトを初期化(リセット)します。
Definition: FileStyleUri.h:31
開発環境別の設定が書かれるファイルです。
一般的なURIをパースしたり構築したりするためのクラスです。
Definition: Uri.h:18
URIを扱うためのクラスを定義しています。
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition: Platform_unix.h:51
FileStyleUri() noexcept
デフォルトコンストラクタです。オブジェクトを初期化します。
Definition: FileStyleUri.h:13