25 #ifndef WMODULECONTAINER_H
26 #define WMODULECONTAINER_H
34 #include <boost/shared_ptr.hpp>
35 #include <boost/thread.hpp>
36 #include <boost/signals2/signal.hpp>
37 #include <boost/function.hpp>
39 #include "../common/WSharedObject.h"
41 #include "WModuleCombinerTypes.h"
42 #include "WModuleConnectorSignals.h"
43 #include "WModuleSignals.h"
50 #include "WExportKernel.h"
92 std::string description =
"Used as container for several modules." );
107 virtual void add( boost::shared_ptr< WModule > module,
bool run =
true );
117 virtual void remove( boost::shared_ptr< WModule > module );
125 virtual void removeDeep( boost::shared_ptr< WModule > module );
137 virtual const std::string
getName()
const;
151 virtual void addDefaultNotifier( MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier );
159 virtual void addDefaultNotifier( MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier );
169 virtual void addDefaultNotifier( MODULE_CONNECTOR_SIGNAL signal, t_GenericSignalHandlerType notifier );
183 virtual boost::shared_ptr< WModule > applyModule( boost::shared_ptr< WModule > applyOn, std::string what,
bool tryOnly =
false );
194 virtual boost::shared_ptr< WModule > applyModule( boost::shared_ptr< WModule > applyOn, boost::shared_ptr< WModule > prototype );
204 boost::shared_ptr< WBatchLoader > loadDataSets( std::vector< std::string > fileNames );
212 void loadDataSetsSynchronously( std::vector< std::string > fileNames );
223 void addPendingThread( boost::shared_ptr< WThreadedRunner > thread );
230 void finishedPendingThread( boost::shared_ptr< WThreadedRunner > thread );
237 void setCrashIfModuleCrashes(
bool crashIfCrashed =
true );
245 virtual boost::shared_ptr< WModule >
factory()
const;
276 WCombinerTypes::WCompatiblesList getPossibleConnections( boost::shared_ptr< WModule > module );
373 virtual void moduleError( boost::shared_ptr< WModule > module,
const WException& exception );
417 #endif // WMODULECONTAINER_H