syntatic sugar for adding cmds
authorimarom <[email protected]>
Mon, 24 Aug 2015 14:28:25 +0000 (17:28 +0300)
committerimarom <[email protected]>
Mon, 24 Aug 2015 14:28:25 +0000 (17:28 +0300)
linux/ws_main.py
linux_dpdk/ws_main.py
src/rpc-server/commands/trex_rpc_cmd_stream.cpp
src/rpc-server/commands/trex_rpc_cmds.h

index 7d9aae3..659d492 100755 (executable)
@@ -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',
 
                           ])
 
index aef3624..aa270e6 100755 (executable)
@@ -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
index a5b358d..88b5008 100644 (file)
@@ -29,19 +29,13 @@ using namespace std;
  * 
  */
 trex_rpc_cmd_rc_e
-TrexRpcCmdGetStatus::_run(const Json::Value &params, Json::Value &result) {
+TrexRpcCmdAddStream::_run(const Json::Value &params, 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);
 }
 
index 39ccf27..5c42585 100644 (file)
@@ -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 &params, 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 &params, Json::Value &result); \
+    }
 
-/**
- * sub 
- *  
- */
-class TrexRpcCmdTestSub : public TrexRpcCommand {
-public:
-     TrexRpcCmdTestSub() : TrexRpcCommand("test_sub") {} ;
-protected:
-     virtual trex_rpc_cmd_rc_e _run(const Json::Value &params, 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 &params, 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 &params, 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 &params, Json::Value &result);
-};
-
+TREX_RPC_CMD_DEFINE(TrexRpcCmdAddStream,  "add_stream");
 
-/**************** test section end *************/
 #endif /* __TREX_RPC_CMD_H__ */