diff options
Diffstat (limited to 'src/rpc-server/include/trex_rpc_server_api.h')
-rw-r--r-- | src/rpc-server/include/trex_rpc_server_api.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/src/rpc-server/include/trex_rpc_server_api.h b/src/rpc-server/include/trex_rpc_server_api.h deleted file mode 100644 index 6bb81c73..00000000 --- a/src/rpc-server/include/trex_rpc_server_api.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - 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_SERVER_API_H__ -#define __TREX_RPC_SERVER_API_H__ - -#include <stdint.h> -#include <vector> -#include <thread> -#include <string> -#include <stdexcept> -#include <trex_rpc_exception_api.h> - -class TrexRpcServerInterface; - -/** - * defines a configuration of generic RPC server - * - * @author imarom (17-Aug-15) - */ -class TrexRpcServerConfig { -public: - - enum rpc_prot_e { - RPC_PROT_TCP - }; - - TrexRpcServerConfig(rpc_prot_e protocol, uint16_t port) : m_protocol(protocol), m_port(port) { - - } - - uint16_t get_port() { - return m_port; - } - - rpc_prot_e get_protocol() { - return m_protocol; - } - -private: - rpc_prot_e m_protocol; - uint16_t m_port; -}; - -/** - * generic type RPC server instance - * - * @author imarom (12-Aug-15) - */ -class TrexRpcServerInterface { -public: - - TrexRpcServerInterface(const TrexRpcServerConfig &cfg, const std::string &name); - virtual ~TrexRpcServerInterface(); - - /** - * starts the server - * - */ - void start(); - - /** - * stops the server - * - */ - void stop(); - - /** - * set verbose on or off - * - */ - void set_verbose(bool verbose); - - /** - * return TRUE if server is active - * - */ - bool is_running(); - - /** - * is the server verbose or not - * - */ - bool is_verbose(); - -protected: - /** - * instances implement this - * - */ - virtual void _rpc_thread_cb() = 0; - virtual void _stop_rpc_thread() = 0; - - /** - * prints a verbosed message (if enabled) - * - */ - void verbose_msg(const std::string &msg); - - TrexRpcServerConfig m_cfg; - bool m_is_running; - bool m_is_verbose; - std::thread *m_thread; - std::string m_name; -}; - -/** - * TREX RPC server - * may contain serveral types of RPC servers - * (request response, async and etc.) - * - * @author imarom (12-Aug-15) - */ -class TrexRpcServer { -public: - - /* currently only request response server config is required */ - TrexRpcServer(const TrexRpcServerConfig &req_resp_cfg); - ~TrexRpcServer(); - - /** - * starts the RPC server - * - * @author imarom (19-Aug-15) - */ - void start(); - - /** - * stops the RPC server - * - * @author imarom (19-Aug-15) - */ - void stop(); - - void set_verbose(bool verbose); - - static const std::string &get_server_uptime() { - return s_server_uptime; - } - -private: - std::vector<TrexRpcServerInterface *> m_servers; - bool m_verbose; - static const std::string s_server_uptime; -}; - -#endif /* __TREX_RPC_SERVER_API_H__ */ |