Fix nswering procedure: have to use source resource.
[anna.git] / example / diameter / launcher / testing / TestStep.hpp
index aa2f575..e4574c1 100644 (file)
@@ -31,6 +31,9 @@ namespace anna {
     class Node;
   }
   namespace diameter {
+    namespace codec {
+      class Message;
+    }
     namespace comm {
       class ClientSession;
       class ServerSession;
@@ -118,12 +121,14 @@ class TestStepSendxml : public TestStep {
 
     // Message
     anna::DataBlock a_message;
+    anna::diameter::codec::Message *a_messageCodec; // used as helper and for traffic logs
 
     // Expired ?
     bool a_expired; // a_endTimestamp will be the expiration reception timestamp
 
   public:
-    TestStepSendxml(TestCase *testCase) : TestStep(testCase), a_message(true), a_expired(false), a_realmNode(NULL), a_waitForRequestStepNumber(-1) {;}
+    TestStepSendxml(TestCase *testCase) : TestStep(testCase), a_message(true), a_messageCodec(NULL), a_expired(false), a_realmNode(NULL), a_waitForRequestStepNumber(-1) {;}
+    ~TestStepSendxml();
 
     // setter & getters
     void setRealmNode(RealmNode *realm) throw() { a_realmNode = realm; }
@@ -174,12 +179,13 @@ class TestStepWait : public TestStep {
 
     TestCondition a_condition;
     anna::DataBlock a_message; // message which complies with condition
+    anna::diameter::codec::Message *a_messageCodec; // used as helper and for traffic logs
     anna::diameter::comm::ClientSession *a_clientSession;
     anna::diameter::comm::ServerSession *a_serverSession;
 
   public:
-    TestStepWait(TestCase *testCase) : TestStep(testCase), a_message(true) { a_type = Type::Wait; a_clientSession = NULL; a_serverSession = NULL; }
-    ~TestStepWait() {;}
+    TestStepWait(TestCase *testCase) : TestStep(testCase), a_message(true), a_messageCodec(NULL) { a_type = Type::Wait; a_clientSession = NULL; a_serverSession = NULL; }
+    ~TestStepWait();
 
     // setter & getters
     void setCondition(bool fromEntity,
@@ -189,6 +195,8 @@ class TestStepWait : public TestStep {
 
     void setClientSession(anna::diameter::comm::ClientSession *cs) throw() { a_clientSession = cs; }
     void setServerSession(anna::diameter::comm::ServerSession *ss) throw() { a_serverSession = ss; }
+    anna::diameter::comm::ClientSession *getClientSession() const throw() { return a_clientSession; }
+    anna::diameter::comm::ServerSession *getServerSession() const throw() { return a_serverSession; }
 
     const TestCondition &getCondition() const throw() { return a_condition; }
     //void setMsgDataBlock(const anna::DataBlock &db) throw() { a_message = db; }
@@ -212,10 +220,11 @@ class TestStepCmd : public TestStep {
   bool a_threadRunning;
   bool a_threadDeprecated;
   int a_resultCode;
-  //std::string a_output;
+  std::string a_errorMsg;
+  //std::string a_output; // for POPEN
 
   public:
-    TestStepCmd(TestCase *testCase) : TestStep(testCase), a_threadRunning(false), a_threadDeprecated(false), a_resultCode(-2)/*, a_output("")*/ { a_type = Type::Cmd; }
+    TestStepCmd(TestCase *testCase) : TestStep(testCase), a_threadRunning(false), a_threadDeprecated(false), a_resultCode(-2)/*, a_output("")*/, a_errorMsg("") { a_type = Type::Cmd; }
 
     // setter & getters
     void setThreadRunning(bool running) throw() { a_threadRunning = running; }
@@ -225,7 +234,9 @@ class TestStepCmd : public TestStep {
 
     void setResultCode(int rc) throw() { a_resultCode = rc; }
     int getResultCode() const throw() { return a_resultCode; }
-    //void setOutput(const std::string &output) throw() { a_output = output; }
+    void setErrorMsg(const std::string &em) throw() { a_errorMsg = em; }
+    const std::string &getErrorMsg() const throw() { return a_errorMsg; }
+    //void appendOutput(const std::string &output) throw() { a_output += output; }
     //const std::string &getOutput() const throw() { return a_output; }
 
     void setScript(const std::string &script) throw() { a_script = script; }