diff options
Diffstat (limited to 'src/stateless/messaging')
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.cpp | 25 | ||||
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.h | 15 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp index 3e754649..032559bc 100644 --- a/src/stateless/messaging/trex_stateless_messaging.cpp +++ b/src/stateless/messaging/trex_stateless_messaging.cpp @@ -29,6 +29,21 @@ limitations under the License. TrexStatelessDpStart::TrexStatelessDpStart(TrexStreamsCompiledObj *obj) : m_obj(obj) { } + +/** + * clone for DP start message + * + */ +TrexStatelessCpToDpMsgBase * +TrexStatelessDpStart::clone() { + + TrexStreamsCompiledObj *new_obj = m_obj->clone(); + + TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpStart(new_obj); + + return new_msg; +} + TrexStatelessDpStart::~TrexStatelessDpStart() { if (m_obj) { delete m_obj; @@ -51,3 +66,13 @@ TrexStatelessDpStop::handle(TrexStatelessDpCore *dp_core) { return true; } +/** + * clone for DP stop message + * + */ +TrexStatelessCpToDpMsgBase * +TrexStatelessDpStop::clone() { + TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpStop(m_port_id); + + return new_msg; +} diff --git a/src/stateless/messaging/trex_stateless_messaging.h b/src/stateless/messaging/trex_stateless_messaging.h index 381e146d..7978b7f9 100644 --- a/src/stateless/messaging/trex_stateless_messaging.h +++ b/src/stateless/messaging/trex_stateless_messaging.h @@ -45,6 +45,17 @@ public: * */ virtual bool handle(TrexStatelessDpCore *dp_core) = 0; + + + /** + * clone the current message + * + */ + virtual TrexStatelessCpToDpMsgBase * clone() = 0; + + /* no copy constructor */ + TrexStatelessCpToDpMsgBase(TrexStatelessCpToDpMsgBase &) = delete; + }; /** @@ -61,6 +72,8 @@ public: virtual bool handle(TrexStatelessDpCore *dp_core); + virtual TrexStatelessCpToDpMsgBase * clone(); + private: TrexStreamsCompiledObj *m_obj; }; @@ -78,6 +91,8 @@ public: virtual bool handle(TrexStatelessDpCore *dp_core); + virtual TrexStatelessCpToDpMsgBase * clone(); + private: uint8_t m_port_id; }; |