3 #ifndef INCLUDE_NN_NLIB_MSGPACK_JSONRPC_JSONRPCREQUEST_H_
4 #define INCLUDE_NN_NLIB_MSGPACK_JSONRPC_JSONRPCREQUEST_H_
9 #include "nn/nlib/Swap.h"
17 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
18 #undef NLIB_VIS_PUBLIC
19 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
27 class JsonRpcErrorRequestTest;
37 reqid_t
GetId()
const {
return m_Id; }
38 const char*
GetMethod()
const {
return m_Method.get(); }
42 void SetId(reqid_t
id) { m_Id = id; }
60 JsonRpcResponse m_Response;
64 friend class JsonRpcRequestReader;
65 friend class fortest::JsonRpcErrorRequestTest;
73 : m_IsMsgpack(use_msgpack), m_Cur(0), m_Count(0) {}
77 return WriteRequest(method, 0, params);
101 static errno_t ReadRequest(
const void* p,
size_t n, ListType* request_list);
105 ListType* request_list);
107 ListType* request_list);
117 #if defined(_MSC_VER) && defined(nx_msgpack_EXPORTS)
118 #undef NLIB_VIS_PUBLIC
119 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
122 #endif // INCLUDE_NN_NLIB_MSGPACK_JSONRPC_JSONRPCREQUEST_H_
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
JSON-RPCのリクエストをシリアライズしてメモリに書きこむためのクラスです。
nlib_realloc()等のrealloc関数を利用して拡張するメモリ領域に書きこむ出力ストリームです。 ...
std::unique_ptrに相当するクラスが定義されています。
MessagePack又はJSONを読み込むことで作成されるオブジェクトです。
reqid_t GetId() const
このリクエストのid を取得します。0の場合はリクエストはnotificationとなります。
const char * GetMethod() const
このリクエストのメソッド名を取得します。
void swap(MpObject &rhs) noexcept
オブジェクトの中身をスワップします。
JSON-RPCリクエストを読み込むためのクラスです。
void MoveParamsFrom(MpObject ¶ms)
JSON-RPCのパラメータを設定します。
MessagePack, JSON及びCSVを読み込むと作成されるオブジェクトです。
errno_t WriteNotification(const char *method, const MpObject ¶ms)
JSON-RPCのNotificationを書き込みます。
JsonRpcRequestWriter(bool use_msgpack)
trueにすることでJSONの記述方式にJSONではなくmsgpackを利用します。
Nlist< JsonRpcRequest > ListType
バイト列から復元されるJSON-RPCリクエストのシーケンスを格納する型
const MpObject & GetParams() const
このリクエストのパラメータを取得します。
uint32_t reqid_t
JSON-RPCのリクエストに付与されるidの型です。
std::vectorに似た、コピーコンストラクタを持たないオブジェクトを格納可能なコンテナ類似クラスです。 ...
strlen, strcpy等を安全に使えるようにラップしています。
MpObject & GetParams()
このリクエストのパラメータを取得します。
メモリ上に展開されたMessagePackのデータに高速にアクセスします。
JsonRpcRequestWriter()
デフォルトコンストラクタです。
size_t JsonRpcServerExec(const void *p, size_t n, ReallocOutputStream::UniquePtrType *ptr)
JSON-RPCリクエストを処理してJSON-RPCレスポンスのバイト列を作成します。
errno_t WriteRequest(const JsonRpcRequest &req)
JSON-RPCのリクエストを書き込みます。
void SetId(reqid_t id)
リクエストのidを設定します。
MessagePackを高速に読み込むためのクラスが定義されています。
JsonRpcRequest()
デフォルトコンストラクタです。