diff --git a/LCS/ACC/PLC/src/ProcControlComm.cc b/LCS/ACC/PLC/src/ProcControlComm.cc index 3d8f108dc651260e4d6406620309bd6d80390b33..824e714db76ef9b093aa7c30617d475ba714c549 100644 --- a/LCS/ACC/PLC/src/ProcControlComm.cc +++ b/LCS/ACC/PLC/src/ProcControlComm.cc @@ -23,7 +23,6 @@ #include <lofar_config.h> //# Includes -#include <Transport/TH_Socket.h> #include <PLC/ProcControlComm.h> namespace LOFAR { @@ -39,17 +38,17 @@ ProcControlComm::ProcControlComm(const string& hostname, itsReadConn(0), itsWriteConn(0), itsDataHolder(new DH_ProcControl), - itsSyncComm(syncComm) + itsSyncComm(syncComm), + itsTHSocket(new TH_Socket(hostname, port, syncComm)) { ASSERTSTR(itsDataHolder, "Unable to allocate a dataholder"); itsDataHolder->init(); - TH_Socket* theTH = new TH_Socket(hostname, port, syncComm); - ASSERTSTR(theTH, "Unable to allocate a transportHolder"); - theTH->init(); + ASSERTSTR(itsTHSocket, "Unable to allocate a transportHolder"); + itsTHSocket->init(); - itsReadConn = new CSConnection("read", 0, itsDataHolder, theTH, syncComm); - itsWriteConn = new CSConnection("write", itsDataHolder, 0, theTH, syncComm); + itsReadConn = new CSConnection("read", 0, itsDataHolder, itsTHSocket, syncComm); + itsWriteConn = new CSConnection("write", itsDataHolder, 0, itsTHSocket, syncComm); ASSERTSTR(itsReadConn, "Unable to allocate connection for reading"); ASSERTSTR(itsWriteConn, "Unable to allocate connection for wrtiting"); } @@ -62,26 +61,28 @@ ProcControlComm::ProcControlComm(const string& port, itsReadConn(0), itsWriteConn(0), itsDataHolder(new DH_ProcControl), - itsSyncComm(syncComm) + itsSyncComm(syncComm), + itsTHSocket(new TH_Socket(port, syncComm)) { ASSERTSTR(itsDataHolder, "Unable to allocate a dataholder"); itsDataHolder->init(); - TH_Socket* theTH = new TH_Socket(port, syncComm); - ASSERTSTR(theTH, "Unable to allocate a transportHolder"); - theTH->init(); + ASSERTSTR(itsTHSocket, "Unable to allocate a transportHolder"); + itsTHSocket->init(); - itsReadConn = new CSConnection("read", 0, itsDataHolder, theTH, syncComm); - itsWriteConn = new CSConnection("write", itsDataHolder, 0, theTH, syncComm); + itsReadConn = new CSConnection("read", 0, itsDataHolder, itsTHSocket, syncComm); + itsWriteConn = new CSConnection("write", itsDataHolder, 0, itsTHSocket, syncComm); ASSERTSTR(itsReadConn, "Unable to allocate connection for reading"); ASSERTSTR(itsWriteConn, "Unable to allocate connection for wrtiting"); } + // Destructor ProcControlComm::~ProcControlComm() { - if (itsDataHolder) { - delete itsDataHolder; - } + delete itsWriteConn; + delete itsReadConn; + delete itsTHSocket; + delete itsDataHolder; } //# Returns the result code from the last completed command. diff --git a/LCS/ACC/PLC/src/ProcCtrlRemote.cc b/LCS/ACC/PLC/src/ProcCtrlRemote.cc index 1894d6d414725b21ed28705a2edb0a8c461bf1db..d72e16384bb617974b99889a6418115d9e4a5ee6 100644 --- a/LCS/ACC/PLC/src/ProcCtrlRemote.cc +++ b/LCS/ACC/PLC/src/ProcCtrlRemote.cc @@ -44,6 +44,11 @@ ProcCtrlRemote::ProcCtrlRemote(ProcessControl* aProcCtrl, const string& aUniqPro LOG_TRACE_FLOW(AUTO_FUNCTION_NAME); } +ProcCtrlRemote::~ProcCtrlRemote() +{ + delete itsPCServer; +} + // // operator() //