summaryrefslogtreecommitdiffstats
path: root/src/stateless/messaging
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2015-11-03 17:45:44 +0200
committerimarom <imarom@cisco.com>2015-11-03 17:45:44 +0200
commit6b241b37b4c0cd462c158c2dad28009ea817cd86 (patch)
tree5b05af8f3d8a261e1735b24f2590ad187cf66ffc /src/stateless/messaging
parentc0a49eef86df00d9497fa5701d5b9d4cbf4bacc2 (diff)
support for multicore
Diffstat (limited to 'src/stateless/messaging')
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.cpp25
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.h15
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;
};