From e094ae7c761a7d5a3b93f489f5ff9b4ed70ae9a3 Mon Sep 17 00:00:00 2001 From: imarom Date: Mon, 24 Aug 2015 17:28:25 +0300 Subject: syntatic sugar for adding cmds --- linux/ws_main.py | 1 + linux_dpdk/ws_main.py | 1 + src/rpc-server/commands/trex_rpc_cmd_stream.cpp | 14 ++---- src/rpc-server/commands/trex_rpc_cmds.h | 61 +++++++------------------ 4 files changed, 23 insertions(+), 54 deletions(-) diff --git a/linux/ws_main.py b/linux/ws_main.py index 7d9aae3b..659d4921 100755 --- a/linux/ws_main.py +++ b/linux/ws_main.py @@ -149,6 +149,7 @@ rpc_server_src = SrcGroup(dir='src/rpc-server/', 'commands/trex_rpc_cmd_test.cpp', 'commands/trex_rpc_cmd_general.cpp', + 'commands/trex_rpc_cmd_stream.cpp', ]) diff --git a/linux_dpdk/ws_main.py b/linux_dpdk/ws_main.py index aef36244..aa270e69 100755 --- a/linux_dpdk/ws_main.py +++ b/linux_dpdk/ws_main.py @@ -147,6 +147,7 @@ rpc_server_src = SrcGroup(dir='src/rpc-server/', 'commands/trex_rpc_cmd_test.cpp', 'commands/trex_rpc_cmd_general.cpp', + 'commands/trex_rpc_cmd_stream.cpp', ]) # JSON package diff --git a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp index a5b358d0..88b50089 100644 --- a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp +++ b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp @@ -29,19 +29,13 @@ using namespace std; * */ trex_rpc_cmd_rc_e -TrexRpcCmdGetStatus::_run(const Json::Value ¶ms, Json::Value &result) { +TrexRpcCmdAddStream::_run(const Json::Value ¶ms, Json::Value &result) { - /* validate count */ - if (params.size() != 1) { - generate_err_param_count(result, 0, params.size()); - return (TrexRpcCommand::RPC_CMD_PARAM_COUNT_ERR); - } + check_param_count(params, 1, result); + check_field_type(params, "stream", FIELD_TYPE_OBJ, result); Json::Value &stream = result["stream"]; - if (stream == Json::Value::null) { - generate_err_param_count - } - return (RPC_CMD_OK); + return (TREX_RPC_CMD_OK); } diff --git a/src/rpc-server/commands/trex_rpc_cmds.h b/src/rpc-server/commands/trex_rpc_cmds.h index 39ccf27a..5c425856 100644 --- a/src/rpc-server/commands/trex_rpc_cmds.h +++ b/src/rpc-server/commands/trex_rpc_cmds.h @@ -30,60 +30,33 @@ limitations under the License. /******************* test section ************/ /** - * add - * + * syntactic sugar for creating a simple command */ -class TrexRpcCmdTestAdd : public TrexRpcCommand { -public: - TrexRpcCmdTestAdd() : TrexRpcCommand("test_add") {} -protected: - virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); -}; +#define TREX_RPC_CMD_DEFINE(class_name, cmd_name) \ + class class_name : public TrexRpcCommand { \ + public: \ + class_name () : TrexRpcCommand(cmd_name) {} \ + protected: \ + virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); \ + } -/** - * sub - * - */ -class TrexRpcCmdTestSub : public TrexRpcCommand { -public: - TrexRpcCmdTestSub() : TrexRpcCommand("test_sub") {} ; -protected: - virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); -}; /** - * ping - * + * test cmds */ -class TrexRpcCmdPing : public TrexRpcCommand { -public: - TrexRpcCmdPing() : TrexRpcCommand("ping") {}; -protected: - virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); -}; +TREX_RPC_CMD_DEFINE(TrexRpcCmdTestAdd, "test_add"); +TREX_RPC_CMD_DEFINE(TrexRpcCmdTestSub, "test_sub"); /** - * get all registered commands - * + * general cmds */ -class TrexRpcCmdGetReg : public TrexRpcCommand { -public: - TrexRpcCmdGetReg() : TrexRpcCommand("get_reg_cmds") {}; -protected: - virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); -}; +TREX_RPC_CMD_DEFINE(TrexRpcCmdPing, "ping"); +TREX_RPC_CMD_DEFINE(TrexRpcCmdGetReg, "get_reg_cmds"); +TREX_RPC_CMD_DEFINE(TrexRpcCmdGetStatus, "get_status"); /** - * get status - * + * stream cmds */ -class TrexRpcCmdGetStatus : public TrexRpcCommand { -public: - TrexRpcCmdGetStatus() : TrexRpcCommand("get_status") {}; -protected: - virtual trex_rpc_cmd_rc_e _run(const Json::Value ¶ms, Json::Value &result); -}; - +TREX_RPC_CMD_DEFINE(TrexRpcCmdAddStream, "add_stream"); -/**************** test section end *************/ #endif /* __TREX_RPC_CMD_H__ */ -- cgit 1.2.3-korg