nlib
HttpStyleUri.h
[詳解]
1 
2 #pragma once
3 #ifndef INCLUDE_NN_NLIB_HTTPSTYLEURI_H_
4 #define INCLUDE_NN_NLIB_HTTPSTYLEURI_H_
5 
6 #include <utility> // for std::pair
7 #include "nn/nlib/Config.h"
8 #include "nn/nlib/Uri.h"
9 
10 NLIB_NAMESPACE_BEGIN
11 
13  public:
14  typedef std::pair<const char*, const char*> KeyValue;
15  HttpStyleUri() NLIB_NOEXCEPT : prv_(NULL) {}
17  bool FromUri(const Uri& uri) NLIB_NOEXCEPT;
18  bool ToUri(Uri* uri) const NLIB_NOEXCEPT;
19  bool Parse(const char* str) NLIB_NOEXCEPT;
20  bool ComposeString(
21  char* buf,
22  size_t size) const NLIB_NOEXCEPT;
23  template <size_t N>
25  char (&buf)[N]) const NLIB_NOEXCEPT {
26  return this->ComposeString(buf, N);
27  }
28  bool SetScheme(const char* scheme) NLIB_NOEXCEPT;
29  bool SetUserInfo(const char* userinfo) NLIB_NOEXCEPT;
30  bool SetHost(const char* host) NLIB_NOEXCEPT;
31  bool SetPort(int port) NLIB_NOEXCEPT;
32  bool SetPath(const char* path) NLIB_NOEXCEPT;
33  bool SetQuery(const char* query) NLIB_NOEXCEPT;
34  bool SetFragment(const char* fragment) NLIB_NOEXCEPT;
35  bool AddQuery(const char* key, const char* value) NLIB_NOEXCEPT;
36  const char* GetScheme() const NLIB_NOEXCEPT;
37  const char* GetUserInfo() const NLIB_NOEXCEPT;
38  const char* GetHost() const NLIB_NOEXCEPT;
39  int GetPort() const NLIB_NOEXCEPT;
40  size_t GetNumSegment() const NLIB_NOEXCEPT;
41  const char* GetSegment(size_t i) const NLIB_NOEXCEPT;
42  bool IsPathDirectory() const NLIB_NOEXCEPT;
43  const char* GetQueryValue(const char* key) const NLIB_NOEXCEPT;
44  size_t GetNumQuery() const NLIB_NOEXCEPT;
45  const KeyValue* GetQueryKeyValue(size_t i) const NLIB_NOEXCEPT;
46  const char* GetFragment() const NLIB_NOEXCEPT;
47  bool AddBaseUri(const Uri& relative, const HttpStyleUri& base) NLIB_NOEXCEPT;
48  void Reset() NLIB_NOEXCEPT;
49 
50  private:
51  NLIB_VIS_HIDDEN bool CheckInit() const NLIB_NOEXCEPT;
52  struct HttpStyleUriPrivate;
53  mutable HttpStyleUriPrivate* prv_;
54 };
55 
56 NLIB_NAMESPACE_END
57 #endif // INCLUDE_NN_NLIB_HTTPSTYLEURI_H_
http/httpsスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。 ...
Definition: HttpStyleUri.h:12
#define NLIB_VIS_HIDDEN
関数やクラス等のシンボルをライブラリの外部に公開しません。
Definition: Platform_unix.h:60
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition: Platform_unix.h:61
std::pair< const char *, const char * > KeyValue
クエリのキーと値を格納する型です。
Definition: HttpStyleUri.h:14
bool ComposeString(char(&buf)[N]) const noexcept
ComposeString(buf, N) を呼び出します。
Definition: HttpStyleUri.h:24
HttpStyleUri() noexcept
デフォルトコンストラクタです。オブジェクトを初期化します。
Definition: HttpStyleUri.h:15
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition: Config.h:86
開発環境別の設定が書かれるファイルです。
一般的なURIをパースしたり構築したりするためのクラスです。
Definition: Uri.h:17
URIを扱うためのクラスを定義しています。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
Definition: Config.h:211