OpenWalnut  1.5.0dev
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
WDataModule Class Referenceabstract

Base for all data loader modules. More...

#include <WDataModule.h>

+ Inheritance diagram for WDataModule:
+ Collaboration diagram for WDataModule:

Public Types

typedef std::shared_ptr< WDataModuleSPtr
 Convenience typedef for a std::shared_ptr< WDataModule >. More...
 
typedef std::shared_ptr< const WDataModuleConstSPtr
 Convenience typedef for a std::shared_ptr< const WDataModule >. More...
 
- Public Types inherited from WModule
typedef std::vector< std::shared_ptr< WModuleInputConnector > > InputConnectorList
 The type for the list of input connectors. More...
 
typedef std::vector< std::shared_ptr< WModuleOutputConnector > > OutputConnectorList
 The type for the list of output connectors. More...
 
typedef std::shared_ptr< WModuleSPtr
 Shared pointer to a WModule. More...
 
typedef std::shared_ptr< const WModuleConstSPtr
 Shared pointer to a const WModule. More...
 
- Public Types inherited from WThreadedRunner
typedef std::shared_ptr< WThreadedRunnerSPtr
 Abbreviation to a shared_ptr to this type. More...
 
typedef std::shared_ptr< const WThreadedRunnerConstSPtr
 Abbreviation to a const shared_ptr to this type. More...
 
typedef boost::function< void(void) > THREADFUNCTION
 Type used for simple thread functions. More...
 

Public Member Functions

 WDataModule ()
 Default constructor. More...
 
virtual ~WDataModule ()
 Destructor. More...
 
virtual MODULE_TYPE getType () const
 Gets the type of the module. More...
 
virtual void setSuppressColormaps (bool suppress=true)
 Allows suppression of colormap registration in data modules. More...
 
bool getSuppressColormaps () const
 Checks whether suppression of colormaps is active. More...
 
virtual std::vector< WDataModuleInputFilter::ConstSPtrgetInputFilter () const =0
 Return a list of input filters. More...
 
void setInput (WDataModuleInput::SPtr input)
 Set the input of this data module. More...
 
void reload ()
 Initiate an reloading of the data. More...
 
virtual WDataModuleInput::SPtr getInput () const
 Get the currently set input or NULL if none was set. More...
 
template<typename InputType >
std::shared_ptr< InputType > getInputAs () const
 Get the currently set input or NULL if none was set. More...
 
WCondition::ConstSPtr getInputChangedCondition () const
 Return the condition that gets triggered upon input change. More...
 
- Public Member Functions inherited from WModule
 WModule ()
 Constructs a new WModule instance. More...
 
virtual ~WModule ()
 Destructor. More...
 
const InputConnectorListgetInputConnectors () const
 Gives back input connectors. More...
 
std::shared_ptr< WModuleInputConnectorgetInputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleInputConnectorfindInputConnector (std::string name)
 Finds the named connector for the module. More...
 
const OutputConnectorListgetOutputConnectors () const
 Gives back output connectors. More...
 
std::shared_ptr< WModuleOutputConnectorgetOutputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleOutputConnectorfindOutputConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleConnectorgetConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WModuleConnectorfindConnector (std::string name)
 Finds the named connector for the module. More...
 
std::shared_ptr< WPropertiesgetProperties () const
 Return a pointer to the properties object of the module. More...
 
std::shared_ptr< WPropertiesgetInformationProperties () const
 Return a pointer to the information properties object of the module. More...
 
const WBoolFlagisInitialized () const
 Determines whether the module instance is properly initialized. More...
 
const WBoolFlagisUseable () const
 Checks whether the module instance is ready to be used. More...
 
const WBoolFlagisAssociated () const
 Checks whether this module is associated with an container. More...
 
const WBoolFlagisReady () const
 Checks whether this module is ready. More...
 
const WBoolFlagisReadyOrCrashed () const
 This is the logical or of isReady and isCrashed. More...
 
const WBoolFlagisRunning () const
 Returns a flag denoting whether the thread currently is running or nor. More...
 
void waitRestored ()
 This method waits for the module to be restored completely. More...
 
bool isRestoreNeeded () const
 Check whether this module is in restore mode. More...
 
void setRestoreNeeded (bool restore=true)
 Change the restore mode. More...
 
void reportRestoreComplete ()
 Called by loaders to tell the module that loading has been completed. More...
 
std::shared_ptr< WModuleContainergetAssociatedContainer () const
 The container this module is associated with. More...
 
virtual std::shared_ptr< WModulefactory () const =0
 Due to the prototype design pattern used to build modules, this method returns a new instance of this module. More...
 
virtual boost::signals2::connection subscribeSignal (MODULE_SIGNAL signal, t_ModuleGenericSignalHandlerType notifier)
 Connects a specified notify function with a signal this module instance is offering. More...
 
virtual boost::signals2::connection subscribeSignal (MODULE_SIGNAL signal, t_ModuleErrorSignalHandlerType notifier)
 Connects a specified notify function with a signal this module instance is offering. More...
 
virtual std::shared_ptr< WProgressCombinergetRootProgressCombiner ()
 Gets the modules base progress. More...
 
virtual const char ** getXPMIcon () const
 Get the icon for this module in XPM format. More...
 
void disconnect ()
 Completely disconnects all connected connectors of this module. More...
 
WCombinerTypes::WDisconnectList getPossibleDisconnections ()
 Gives a list of all WDisconnectCombiners possible. More...
 
boost::filesystem::path getLocalPath () const
 Returns the local path of the module. More...
 
boost::filesystem::path getLibPath () const
 Returns the absolute path to the library containing this module. More...
 
std::string getPackageName () const
 Returns the name of the package the module belongs to, The package name basically is the name of the library containing this and maybe other modules. More...
 
bool isDeprecated () const
 Checks whether the module was marked as deprecated. More...
 
std::string getDeprecationMessage () const
 Queries the deprecation message of a module if specified. More...
 
virtual WModuleMetaInformation::ConstSPtr getMetaInformation () const
 The meta information of this module. More...
 
const std::string & getUUID () const
 Get the UUID of the module instance. More...
 
WPropString getRuntimeName () const
 Returns the name the user has given this module. More...
 
const WRequirementcheckRequirements () const
 This method checks whether all the requirements of the module are complied. More...
 
virtual boost::signals2::connection subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier)
 Connects a specified notify function with a signal this thread instance is offering. More...
 
- Public Member Functions inherited from WThreadedRunner
 WThreadedRunner ()
 Default constructor. More...
 
virtual ~WThreadedRunner ()
 Destructor. More...
 
virtual void run ()
 Run thread. More...
 
void run (THREADFUNCTION f)
 Run thread. More...
 
void wait (bool requestFinish=false)
 Wait for the thread to be finished. More...
 
virtual void requestStop ()
 This method's purpose is to request a stop without waiting for it. More...
 
virtual boost::signals2::connection subscribeSignal (THREAD_SIGNAL signal, t_ThreadErrorSignalHandlerType notifier)
 Connects a specified notify function with a signal this thread instance is offering. More...
 
const WBoolFlagisCrashed () const
 Checks whether this thread has been crashed. More...
 
const std::string & getCrashMessage () const
 Get the message of the exception finally causing the crash. More...
 
void setThreadName (std::string name)
 Set the name of the thread. More...
 
std::string getThreadName () const
 Returns the current thread name. More...
 
- Public Member Functions inherited from WPrototyped
 WPrototyped ()
 Default constructor. More...
 
virtual ~WPrototyped ()
 Destructor. More...
 
virtual const std::string getName () const =0
 Gets the name of this prototype. More...
 
virtual const std::string getDescription () const =0
 Gets the description for this prototype. More...
 
template<typename T >
bool isA ()
 Checks whether the actual prototype has the specified runtime type. More...
 

Protected Member Functions

virtual void handleInputChange ()=0
 Handle a newly set input. More...
 
- Protected Member Functions inherited from WModule
virtual void moduleMain ()=0
 Entry point after loading the module. More...
 
void threadMain ()
 Thread entry point. More...
 
virtual void onThreadException (const WException &e)
 This method is called if an exception was caught, which came from the custom thread code. More...
 
void setAssociatedContainer (std::shared_ptr< WModuleContainer > container)
 Sets the container this module is associated with. More...
 
virtual void connectors ()
 Initialize connectors in this function. More...
 
virtual void properties ()
 Initialize properties in this function. More...
 
virtual void requirements ()
 Initialize requirements in this function. More...
 
virtual std::string deprecated () const
 This function allows module programmers to mark their modules deprecated in a user-friendly way. More...
 
void initialize ()
 Manages initialization. More...
 
virtual void cleanup ()
 Called whenever the module should shutdown. More...
 
void addConnector (std::shared_ptr< WModuleInputConnector > con)
 Adds the specified connector to the list of inputs. More...
 
void addConnector (std::shared_ptr< WModuleOutputConnector > con)
 Adds the specified connector to the list of outputs. More...
 
void removeConnectors ()
 Removes all connectors properly. More...
 
virtual void activate ()
 Callback for m_active. More...
 
virtual const t_GenericSignalHandlerType getSignalHandler (MODULE_CONNECTOR_SIGNAL signal)
 Gives the signal handler function responsible for a given signal. More...
 
virtual void notifyConnectionEstablished (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there)
 Gets called whenever a connector gets connected to the specified input. More...
 
virtual void notifyConnectionClosed (std::shared_ptr< WModuleConnector > here, std::shared_ptr< WModuleConnector > there)
 Gets called whenever a connection between a remote and local connector gets closed. More...
 
virtual void notifyDataChange (std::shared_ptr< WModuleConnector > input, std::shared_ptr< WModuleConnector > output)
 Gets called when the data on one input connector changed. More...
 
void ready ()
 Call this whenever your module is ready and can react on property changes. More...
 
wlog::WStreamedLogger infoLog () const
 Logger instance for comfortable info logging. More...
 
wlog::WStreamedLogger debugLog () const
 Logger instance for comfortable debug logging. More...
 
wlog::WStreamedLogger warnLog () const
 Logger instance for comfortable warning- logs. More...
 
wlog::WStreamedLogger errorLog () const
 Logger instance for comfortable error logging. More...
 
void setLocalPath (boost::filesystem::path path)
 Sets the local module path. More...
 
void setLibPath (boost::filesystem::path path)
 Set the path to the library which contains this module. More...
 
void setPackageName (std::string name)
 Set the package name. More...
 
- Protected Member Functions inherited from WThreadedRunner
virtual void notifyStop ()
 Gets called when the thread should be stopped. More...
 
void yield () const
 Give remaining execution timeslice to another thread. More...
 
void sleep (const int32_t t) const
 Sets thread asleep. More...
 
void msleep (const int32_t t) const
 Sets thread asleep. More...
 
void waitForStop ()
 Let the thread sleep until a stop request was given. More...
 
void handleDeadlyException (const WException &e, std::string sender="WThreadedRunner")
 Handle the specified exception which was not caught in the thread, which basically means the thread has crashed. More...
 

Private Attributes

bool m_suppressColormaps
 If true, data modules are instructed to suppress colormap registration. More...
 
WDataModuleInput::SPtr m_dataModuleInput
 The input this data module should use. More...
 
WCondition::SPtr m_inputChanged
 Condition that fires whenever the input changes via setInput. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from WModule
static SPtr findByUUID (std::string uuid)
 Find a module instance by UUID. More...
 
- Static Public Member Functions inherited from WThreadedRunner
static void setThisThreadName (std::string name)
 Static function to set the name of the calling thread. More...
 
- Protected Types inherited from WModule
typedef std::vector< WRequirement * > Requirements
 The type of the requirement list. More...
 
- Protected Attributes inherited from WModule
std::shared_ptr< WPropertiesm_properties
 The property object for the module. More...
 
std::shared_ptr< WPropertiesm_infoProperties
 The property object for the module containing only module whose purpose is "PV_PURPOSE_INFORMNATION". More...
 
std::shared_ptr< WProgressCombinerm_progress
 Progress indicator used as parent for all progress' of this module. More...
 
WBoolFlag m_initialized
 True if everything is initialized and ready to be used. More...
 
WBoolFlag m_isAssociated
 True if container got associated with this flag. More...
 
WBoolFlag m_isUsable
 True if associated && initialized. More...
 
WBoolFlag m_isReady
 True if ready() was called. More...
 
WBoolFlag m_isReadyOrCrashed
 It is true whenever m_isReady or WThreadedRunner::m_isCrashed is true. More...
 
WBoolFlag m_isRunning
 True if the module currently is running. More...
 
WBoolFlag m_isLoadFinished
 Flag to denote whether the module container and the project loader have finished their work. More...
 
bool m_restoreMode
 Flag denoting the current restore mode. More...
 
std::shared_ptr< WProgressm_readyProgress
 Progress indicator for the "ready" state. More...
 
WConditionSet m_moduleState
 The internal state of the module. More...
 
std::shared_ptr< WModuleContainerm_container
 The container this module belongs to. More...
 
InputConnectorList m_inputConnectors
 Set of input connectors associated with this module. More...
 
OutputConnectorList m_outputConnectors
 Set of output connectors associated with this module. More...
 
WPropBool m_active
 True whenever the module should be active. More...
 
WPropString m_runtimeName
 This property holds a user specified name for the current module instance. More...
 
boost::filesystem::path m_localPath
 The path where the module binary resides in. More...
 
boost::filesystem::path m_libPath
 The absolute path to the library containing this module. More...
 
std::string m_packageName
 The name of the lib/the package containing this module. More...
 
Requirements m_requirements
 The list of requirements. More...
 
- Protected Attributes inherited from WThreadedRunner
boost::thread m_thread
 Thread instance. More...
 
WBoolFlag m_shutdownFlag
 Condition getting fired whenever the thread should quit. More...
 
WBoolFlag m_isCrashed
 True whenever an exception is thrown during threadMain. More...
 
std::string m_crashMessage
 The crash message. More...
 

Detailed Description

Base for all data loader modules.

It provides the basic mechanism to define input filters and some other settings.

Implementing a WDataModule is nearly the same as a module. Mark your module ready and call your load code. Enter the main loop and maybe react on property changes.

Note
The reload functionality uses the m_reloadTriggered condition. Use it to wake up your module

Definition at line 46 of file WDataModule.h.

Member Typedef Documentation

◆ ConstSPtr

typedef std::shared_ptr< const WDataModule > WDataModule::ConstSPtr

Convenience typedef for a std::shared_ptr< const WDataModule >.

Definition at line 57 of file WDataModule.h.

◆ SPtr

typedef std::shared_ptr< WDataModule > WDataModule::SPtr

Convenience typedef for a std::shared_ptr< WDataModule >.

Definition at line 52 of file WDataModule.h.

Constructor & Destructor Documentation

◆ WDataModule()

WDataModule::WDataModule ( )

Default constructor.

Definition at line 27 of file WDataModule.cpp.

◆ ~WDataModule()

WDataModule::~WDataModule ( )
virtual

Destructor.

Definition at line 36 of file WDataModule.cpp.

Member Function Documentation

◆ getInput()

WDataModuleInput::SPtr WDataModule::getInput ( ) const
virtual

Get the currently set input or NULL if none was set.

Returns
the input

Definition at line 63 of file WDataModule.cpp.

References m_dataModuleInput.

Referenced by getInputAs().

+ Here is the caller graph for this function:

◆ getInputAs()

template<typename InputType >
std::shared_ptr< InputType > WDataModule::getInputAs

Get the currently set input or NULL if none was set.

Returns
the input. Null if not set or type mismatch.
Template Parameters
InputTypeget the input in this type

Definition at line 169 of file WDataModule.h.

References getInput().

+ Here is the call graph for this function:

◆ getInputChangedCondition()

WCondition::ConstSPtr WDataModule::getInputChangedCondition ( ) const

Return the condition that gets triggered upon input change.

This will get fired every time setInput was called, but before handleInputChange.

Returns
the condition

Definition at line 73 of file WDataModule.cpp.

References m_inputChanged.

◆ getInputFilter()

virtual std::vector< WDataModuleInputFilter::ConstSPtr > WDataModule::getInputFilter ( ) const
pure virtual

Return a list of input filters.

This defines what your module can load. You can return an empty vector. This causes the data module to be "un-matched" for all kinds of data.

Implement this function and ensure it works with module prototypes (do not rely on any properties, connectors and similar here).

Returns
the list of filters

Implemented in WMTemplateDataLoader, WMReadVIM, WMReadSimpleTextLineData, WMReadLAS, and WMData.

Referenced by WModuleFactory::getDataModulePrototypesByInput().

+ Here is the caller graph for this function:

◆ getSuppressColormaps()

bool WDataModule::getSuppressColormaps ( ) const

Checks whether suppression of colormaps is active.

Returns
true if colormaps are suppressed.

Definition at line 51 of file WDataModule.cpp.

References m_suppressColormaps.

Referenced by WMData::updateColorMap().

+ Here is the caller graph for this function:

◆ getType()

MODULE_TYPE WDataModule::getType ( ) const
virtual

Gets the type of the module.

This is useful for FAST differentiation between several modules like standard modules and data modules which play a special role in OpenWalnut/Kernel.

Returns
the Type. If you do not overwrite this method, it will return MODULE_ARBITRARY.

Reimplemented from WModule.

Definition at line 41 of file WDataModule.cpp.

◆ handleInputChange()

virtual void WDataModule::handleInputChange ( )
protectedpure virtual

Handle a newly set input.

Implement this method to load the newly set input. You can get the input using the getInput and getInputAs methods. Please remember that it is possible to get a NULL pointer here. This happens when the user explicitly sets no input. In this case, you should clean up and reset your output connectors.

Note
it is very important to NOT load the data inside of this method. It is usually called in the GUI thread. This would block the whole GUI. Instead, use this method for firing a condition, which then wakes your module thread.

Implemented in WMTemplateDataLoader, WMReadVIM, WMReadSimpleTextLineData, WMReadLAS, and WMData.

Referenced by reload(), and setInput().

+ Here is the caller graph for this function:

◆ reload()

void WDataModule::reload ( )

Initiate an reloading of the data.

Definition at line 68 of file WDataModule.cpp.

References handleInputChange().

+ Here is the call graph for this function:

◆ setInput()

void WDataModule::setInput ( WDataModuleInput::SPtr  input)

Set the input of this data module.

This is called after construction and running the module.

Parameters
inputthe input to use for loading.

Definition at line 56 of file WDataModule.cpp.

References handleInputChange(), m_dataModuleInput, and m_inputChanged.

+ Here is the call graph for this function:

◆ setSuppressColormaps()

void WDataModule::setSuppressColormaps ( bool  suppress = true)
virtual

Allows suppression of colormap registration in data modules.

This can be handy if you use data modules in a container to construct more complex data sets from multiple input files. If a loader does not use colormapping, this setting is ignored.

Note
call this before adding and running the module.
Parameters
suppresstrue if suppress

Definition at line 46 of file WDataModule.cpp.

References m_suppressColormaps.

Member Data Documentation

◆ m_dataModuleInput

WDataModuleInput::SPtr WDataModule::m_dataModuleInput
private

The input this data module should use.

Definition at line 160 of file WDataModule.h.

Referenced by getInput(), and setInput().

◆ m_inputChanged

WCondition::SPtr WDataModule::m_inputChanged
private

Condition that fires whenever the input changes via setInput.

Definition at line 165 of file WDataModule.h.

Referenced by getInputChangedCondition(), and setInput().

◆ m_suppressColormaps

bool WDataModule::m_suppressColormaps
private

If true, data modules are instructed to suppress colormap registration.

Definition at line 155 of file WDataModule.h.

Referenced by getSuppressColormaps(), and setSuppressColormaps().


The documentation for this class was generated from the following files: