Procházet zdrojové kódy

Bug fix bad pointer initialisation and processor list.

Yves před 14 roky
rodič
revize
95fe518272

+ 1 - 1
Plugins/org.commontk.dicom.wg23.app/ctkDicomAppServerPrivate.cpp

@@ -61,7 +61,7 @@ void ctkDicomAppServerPrivate::incomingSoapMessage(
     }
     appInterface = qobject_cast<ctkDicomAppInterface*>(context->getService(serviceRef));
     
-    ctkAppSoapMessageProcessor appProcessor( appInterface );
+    ctkAppSoapMessageProcessor* appProcessor = new ctkAppSoapMessageProcessor( appInterface );
     processors.push_back(appProcessor);
     //ctkExchangeSoapMessageProcessor exchangeProcessor( appInterface );
     //processors.push_back(exchangeProcessor);

+ 1 - 1
Plugins/org.commontk.dicom.wg23.app/ctkDicomHostService.cpp

@@ -26,7 +26,7 @@
 #include "ctkDicomWG23TypesHelper.h"
 
 ctkDicomHostService::ctkDicomHostService(ushort port):
-    ctkDicomExchangeService(port)
+    ctkDicomExchangeService(port), d(new ctkDicomServicePrivate(port))
 {
 
 }

+ 3 - 8
Plugins/org.commontk.dicom.wg23.core/ctkSoapMessageProcessorList.cpp

@@ -21,24 +21,19 @@
 
 #include "ctkSoapMessageProcessorList.h"
 
-void ctkSoapMessageProcessorList::push_back( const ctkSoapMessageProcessor& processor )
+void ctkSoapMessageProcessorList::push_back( ctkSoapMessageProcessor* processor )
 {
 	processors.push_back( processor );
 }
 
-void ctkSoapMessageProcessorList::remove( const ctkSoapMessageProcessor& processor )
-{
-	processors.remove( processor );
-}
-
 bool ctkSoapMessageProcessorList::process(
 	const QtSoapMessage& message,
 	QtSoapMessage* reply ) const
 {
-  for( std::list<ctkSoapMessageProcessor>::const_iterator it = processors.begin(); 
+  for( std::list<ctkSoapMessageProcessor*>::const_iterator it = processors.begin(); 
     it != processors.end(); it++)
 	{
-		if( it->process( message, reply ) )
+		if( (*it)->process( message, reply ) )
 		{
 			return true;
 		}

+ 2 - 4
Plugins/org.commontk.dicom.wg23.core/ctkSoapMessageProcessorList.h

@@ -32,17 +32,15 @@ class org_commontk_dicom_wg23_core_EXPORT ctkSoapMessageProcessorList : public c
 
 public:
 
-	void push_back( const ctkSoapMessageProcessor& processor );
+	void push_back( ctkSoapMessageProcessor* processor );
 
-	void remove( const ctkSoapMessageProcessor& processor );
-	
 	bool process(
 		const QtSoapMessage& message,
 		QtSoapMessage* reply) const;
 		
 private:
 
-	std::list<ctkSoapMessageProcessor> processors;
+	std::list<ctkSoapMessageProcessor*> processors;
 
 };
 

+ 1 - 1
Plugins/org.commontk.dicom.wg23.host/ctkDicomAppService.cpp

@@ -26,7 +26,7 @@
 #include "ctkDicomWG23TypesHelper.h"
 
 ctkDicomAppService::ctkDicomAppService(ushort port):
-  ctkDicomExchangeService(port)
+  ctkDicomExchangeService(port), d(new ctkDicomServicePrivate(port))
 {
 
 }

+ 1 - 1
Plugins/org.commontk.dicom.wg23.host/ctkDicomHostServerPrivate.cpp

@@ -43,7 +43,7 @@ ctkDicomHostServerPrivate::ctkDicomHostServerPrivate(ctkDicomHostInterface* host
     qCritical() << "Listening to 127.0.0.1:" << port << " failed.";
   }
 
-  ctkHostSoapMessageProcessor hostProcessor( hostInterface );
+  ctkHostSoapMessageProcessor* hostProcessor = new ctkHostSoapMessageProcessor( hostInterface );
   processors.push_back(hostProcessor);
   //ctkExchangeSoapMessageProcessor exchangeProcessor( hostInterface );
   //processors.push_back(exchangeProcessor);