32 #include <boost/enable_shared_from_this.hpp>
33 #include <boost/filesystem.hpp>
34 #include <boost/function.hpp>
35 #include <boost/shared_ptr.hpp>
36 #include <boost/signals2/signal.hpp>
37 #include <boost/thread.hpp>
39 #include "../common/WConditionSet.h"
40 #include "../common/WLogger.h"
41 #include "../common/WProgress.h"
42 #include "../common/WProgressCombiner.h"
43 #include "../common/WProperties.h"
44 #include "../common/WPrototyped.h"
45 #include "../common/WRequirement.h"
46 #include "../common/WThreadedRunner.h"
47 #include "../dataHandler/WDataSet.h"
48 #include "../dataHandler/WDataSetSingle.h"
49 #include "../dataHandler/WValueSet.h"
51 #include "WModuleCombinerTypes.h"
52 #include "WModuleConnectorSignals.h"
53 #include "WModuleSignals.h"
54 #include "WModuleTypes.h"
55 #include "WModuleMetaInformation.h"
73 public boost::enable_shared_from_this< WModule >
109 typedef boost::shared_ptr< WModule >
SPtr;
131 boost::shared_ptr< WModuleInputConnector >
getInputConnector( std::string name );
178 boost::shared_ptr< WModuleConnector >
getConnector( std::string name );
188 boost::shared_ptr< WModuleConnector >
findConnector( std::string name );
290 virtual boost::shared_ptr< WModule >
factory()
const = 0;
302 virtual boost::signals2::connection
subscribeSignal( MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier );
316 virtual boost::signals2::connection
subscribeSignal( MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier );
337 virtual MODULE_TYPE
getType()
const;
403 const std::string&
getUUID()
const;
494 void addConnector( boost::shared_ptr<WModuleInputConnector> con );
501 void addConnector( boost::shared_ptr<WModuleOutputConnector> con );
529 virtual const t_GenericSignalHandlerType
getSignalHandler( MODULE_CONNECTOR_SIGNAL signal );
538 boost::shared_ptr<WModuleConnector> there );
545 virtual void notifyConnectionClosed( boost::shared_ptr<WModuleConnector> here, boost::shared_ptr<WModuleConnector> there );
554 boost::shared_ptr<WModuleConnector> output );
607 void setLibPath( boost::filesystem::path path );
785 void setUUID( std::string uuid );
791 typedef std::vector< boost::shared_ptr< WModule > > WModuleList;
796 typedef void ( *W_LOADABLE_MODULE_SIGNATURE )( WModuleList& );
801 typedef void ( *W_LOADABLE_REGISTERARBITRARY_SIGNATURE )(
const boost::filesystem::path& );
810 #define W_LOADABLE_MODULE( MODULECLASS ) \
811 extern "C" void WLoadModule( WModuleList& m ) { m.push_back( boost::shared_ptr< WModule >( new MODULECLASS ) ); } // NOLINT
816 #define W_LOADABLE_MODULE_SYMBOL "WLoadModule"
821 #define W_LOADABLE_REGISTERARBITRARY_SYMBOL "WRegisterArbitrary"