1/*************************************************************************
2 * libjson-rpc-cpp
3 *************************************************************************
4 * @file rpcprotocolserverv1.h
5 * @date 10/23/2014
6 * @author Peter Spiess-Knafl <dev@spiessknafl.at>
7 * @license See attached LICENSE.txt
8 ************************************************************************/
9
10#ifndef JSONRPC_CPP_RPCPROTOCOLSERVERV1_H
11#define JSONRPC_CPP_RPCPROTOCOLSERVERV1_H
12
13#include "abstractprotocolhandler.h"
14#include <jsonrpccpp/common/exception.h>
15
16namespace jsonrpc {
17
18 class RpcProtocolServerV1 : public AbstractProtocolHandler {
19 public:
20 RpcProtocolServerV1(IProcedureInvokationHandler &handler);
21
22 bool ValidateRequestFields(const Json::Value &request);
23 void HandleJsonRequest(const Json::Value &request, Json::Value &response);
24 void WrapResult(const Json::Value &request, Json::Value &response, Json::Value &retValue);
25 void WrapError(const Json::Value &request, int code, const std::string &message, Json::Value &result);
26 void WrapException(const Json::Value &request, const JsonRpcException &exception, Json::Value &result);
27 procedure_t GetRequestType(const Json::Value &request);
28 };
29
30} // namespace jsonrpc
31
32#endif // JSONRPC_CPP_RPCPROTOCOLSERVERV1_H
33