nlib
UriTemplate.h
[詳解]
1 
2 #pragma once
3 #ifndef INCLUDE_NN_NLIB_URITEMPLATE_H_
4 #define INCLUDE_NN_NLIB_URITEMPLATE_H_
5 
6 #include "nn/nlib/Uri.h"
7 
8 NLIB_NAMESPACE_BEGIN
9 
10 class OutputStream;
11 
12 // See RFC6570: https://tools.ietf.org/html/rfc6570
14  public:
15  UriTemplate() NLIB_NOEXCEPT : prv_(NULL) {}
17  errno_t SetTemplate(const char* str) NLIB_NOEXCEPT;
18  errno_t SetParameter(const char* param, const char* value) NLIB_NOEXCEPT;
19  void ResetParameter() NLIB_NOEXCEPT;
20  errno_t Resolve(size_t* written, char* str, size_t n) const NLIB_NOEXCEPT;
21  template<size_t N>
22  errno_t Resolve(size_t* written, char (&str)[N]) const NLIB_NOEXCEPT {
23  return Resolve(written, str, N);
24  }
25 
26  private:
27  struct UriTemplatePrivate;
28  mutable UriTemplatePrivate* prv_;
30 };
31 
32 NLIB_NAMESPACE_END
33 
34 #endif // INCLUDE_NN_NLIB_URITEMPLATE_H_
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
Definition: Config.h:145
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition: Platform_unix.h:61
URI Template(RFC 6570, Level3)をサポートします。
Definition: UriTemplate.h:13
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition: Config.h:86
URIを扱うためのクラスを定義しています。
errno_t Resolve(size_t *written, char(&str)[N]) const noexcept
Resolve(written, str, N)を呼び出します。
Definition: UriTemplate.h:22
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
Definition: Config.h:211
int errno_t
intのtypedefで、戻り値としてPOSIXのエラー値を返すことを示します。
Definition: NMalloc.h:24