00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string>
00026
00027 #include "WDisconnectCombiner.h"
00028
00029 WDisconnectCombiner::WDisconnectCombiner( boost::shared_ptr< WModuleContainer > target,
00030 boost::shared_ptr< WModule > srcModule, std::string srcConnector,
00031 boost::shared_ptr< WModule > targetModule, std::string targetConnector ):
00032 WModuleOneToOneCombiner( target, srcModule, srcConnector, targetModule, targetConnector )
00033 {
00034 }
00035
00036 WDisconnectCombiner::WDisconnectCombiner( boost::shared_ptr< WModule > srcModule, std::string srcConnector,
00037 boost::shared_ptr< WModule > targetModule, std::string targetConnector ):
00038 WModuleOneToOneCombiner( srcModule, srcConnector, targetModule, targetConnector )
00039 {
00040 }
00041
00042 WDisconnectCombiner::WDisconnectCombiner( boost::shared_ptr< WModuleConnector > srcConnector,
00043 boost::shared_ptr< WModuleConnector > targetConnector ):
00044 WModuleOneToOneCombiner( srcConnector->getModule(), srcConnector->getName(), targetConnector->getModule(), targetConnector->getName() )
00045 {
00046 }
00047
00048 WDisconnectCombiner::~WDisconnectCombiner()
00049 {
00050
00051 }
00052
00053 void WDisconnectCombiner::apply()
00054 {
00055
00056 boost::shared_ptr< WModuleConnector > c1 = m_srcModule->findConnector( m_srcConnector );
00057 boost::shared_ptr< WModuleConnector > c2 = m_targetModule->findConnector( m_targetConnector );
00058
00059
00060 if( !c1 || !c2 )
00061 {
00062 return;
00063 }
00064
00065
00066 c1->disconnect( c2 );
00067 }
00068