diff options
Diffstat (limited to 'src/rpc-server/include')
-rw-r--r-- | src/rpc-server/include/trex_rpc_exception_api.h | 39 | ||||
-rw-r--r-- | src/rpc-server/include/trex_rpc_jsonrpc_v2.h | 67 | ||||
-rw-r--r-- | src/rpc-server/include/trex_rpc_req_resp.h | 2 | ||||
-rw-r--r-- | src/rpc-server/include/trex_rpc_server_api.h | 11 |
4 files changed, 108 insertions, 11 deletions
diff --git a/src/rpc-server/include/trex_rpc_exception_api.h b/src/rpc-server/include/trex_rpc_exception_api.h new file mode 100644 index 00000000..8783c219 --- /dev/null +++ b/src/rpc-server/include/trex_rpc_exception_api.h @@ -0,0 +1,39 @@ +/* + Itay Marom + Cisco Systems, Inc. +*/ + +/* +Copyright (c) 2015-2015 Cisco Systems, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +#ifndef __TREX_RPC_EXCEPTION_API_H__ +#define __TREX_RPC_EXCEPTION_API_H__ + +#include <string> +#include <stdexcept> + +/** + * generic exception for RPC errors + * + */ +class TrexRpcException : public std::runtime_error +{ +public: + TrexRpcException(const std::string &what) : std::runtime_error(what) { + } +}; + +#endif /* __TREX_RPC_EXCEPTION_API_H__ */ diff --git a/src/rpc-server/include/trex_rpc_jsonrpc_v2.h b/src/rpc-server/include/trex_rpc_jsonrpc_v2.h new file mode 100644 index 00000000..5a88f756 --- /dev/null +++ b/src/rpc-server/include/trex_rpc_jsonrpc_v2.h @@ -0,0 +1,67 @@ +/* + Itay Marom + Cisco Systems, Inc. +*/ + +/* +Copyright (c) 2015-2015 Cisco Systems, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +#ifndef __TREX_RPC_JSONRPC_V2_H__ +#define __TREX_RPC_JSONRPC_V2_H__ + +#include <string> + +/** + * JSON RPC V2 command + * + * @author imarom (12-Aug-15) + */ +class TrexJsonRpcV2Command { +public: + virtual void execute(std::string &response) = 0; +}; + +/** + * JSON RPC V2 parser + * + * @author imarom (12-Aug-15) + */ +class TrexJsonRpcV2Parser { + +public: + + /** + * creates a JSON-RPC object from a string + * + * @author imarom (12-Aug-15) + * + * @param msg + */ + TrexJsonRpcV2Parser(const std::string &msg); + + /** + * parses the string to a executable command + * + * @author imarom (12-Aug-15) + */ + TrexJsonRpcV2Command * parse(); + +private: + std::string m_msg; +}; + +#endif /* __TREX_RPC_JSONRPC_V2_H__ */ + diff --git a/src/rpc-server/include/trex_rpc_req_resp.h b/src/rpc-server/include/trex_rpc_req_resp.h index 46d01579..511afc02 100644 --- a/src/rpc-server/include/trex_rpc_req_resp.h +++ b/src/rpc-server/include/trex_rpc_req_resp.h @@ -39,7 +39,7 @@ protected: void _stop_rpc_thread(); private: - void handle_request(const uint8_t *msg, uint32_t size); + void handle_request(const std::string &request); static const int RPC_MAX_MSG_SIZE = 2048; void *m_context; diff --git a/src/rpc-server/include/trex_rpc_server_api.h b/src/rpc-server/include/trex_rpc_server_api.h index 98e5f977..f9860e14 100644 --- a/src/rpc-server/include/trex_rpc_server_api.h +++ b/src/rpc-server/include/trex_rpc_server_api.h @@ -28,16 +28,7 @@ limitations under the License. #include <string> #include <stdexcept> -/** - * generic exception for RPC errors - * - */ -class TrexRpcException : public std::runtime_error -{ -public: - TrexRpcException(const std::string &what) : std::runtime_error(what) { - } -}; +#include <trex_rpc_exception_api.h> /* forward decl. of class */ class TrexRpcServerInterface; |