Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::IGTLMessageProvider Class Reference

Provides information/objects from a MITK-Pipeline to other OpenIGTLink devices. More...

#include <mitkIGTLMessageProvider.h>

Inheritance diagram for mitk::IGTLMessageProvider:
Collaboration diagram for mitk::IGTLMessageProvider:

Public Types

typedef itk::SimpleMemberCommand< mitk::IGTLMessageProviderProviderCommand
 

Public Member Functions

 mitkClassMacro (IGTLMessageProvider, IGTLDeviceSource)
 
Pointer Clone () const
 
void Send (const IGTLMessage *msg)
 sends the msg to the requesting client More...
 
void StartStreamingOfSource (mitk::IGTLMessageSource *src, unsigned int fps)
 Starts the streaming of the given message source with the given fps. More...
 
void StopStreamingOfSource (mitk::IGTLMessageSource *src)
 Stops the streaming of the given message source. More...
 
void StopStreamingOfAllSources ()
 Stops the streaming of all message source. More...
 
bool IsStreaming ()
 Returns the streaming state. More...
 
virtual unsigned int GetStreamingTime ()
 Get method for the streaming time. More...
 
virtual void Update () override
 
- Public Member Functions inherited from mitk::IGTLDeviceSource
 mitkClassMacro (IGTLDeviceSource, IGTLMessageSource)
 
Pointer Clone () const
 
virtual void SetIGTLDevice (mitk::IGTLDevice *td)
 sets the OpenIGTLink device that will be used as a data source More...
 
virtual mitk::IGTLDeviceGetIGTLDevice ()
 returns the OpenIGTLink device that is used by this filter More...
 
virtual void RegisterAsMicroservice () override
 Registers this object as a Microservice, making it available to every module and/or plugin. To unregister, call UnregisterMicroservice(). More...
 
void Connect ()
 Establishes a connection to the OpenIGTLink device. If there is already a connection the method does nothing. More...
 
void Disconnect ()
 Closes the connection to the OpenIGTLink device. More...
 
void StartCommunication ()
 starts the communication of the device. This needs to be called before Update() or GetOutput()->Update(). If the device is already communicating the method does nothing. More...
 
void StopCommunication ()
 stops the communication of the device. More...
 
virtual bool IsConnected ()
 returns true if a connection to the OpenIGTLink device is established More...
 
virtual bool IsCommunicating ()
 returns true if communication is in progress More...
 
virtual void UpdateOutputInformation () override
 Used for pipeline update. More...
 
- Public Member Functions inherited from mitk::IGTLMessageSource
 mitkClassMacroItkParent (IGTLMessageSource, itk::ProcessObject)
 
virtual std::string GetName ()
 
virtual void SetName (std::string _arg)
 Sets the human readable name of this source. There is also a default name, but you can use this method if you need to define it on your own. More...
 
virtual std::string GetType ()
 
virtual void SetType (std::string _arg)
 
IGTLMessageGetOutput (void)
 return the output (output with id 0) of the filter More...
 
IGTLMessageGetOutput (DataObjectPointerArraySizeType idx)
 return the output with id idx of the filter More...
 
IGTLMessageGetOutput (const std::string &messageName)
 return the output with name messageName of the filter More...
 
DataObjectPointerArraySizeType GetOutputIndex (std::string messageName)
 return the index of the output with name messageName, -1 if no output with that name was found More...
 
virtual void UnRegisterMicroservice ()
 Registers this object as a Microservice, making it available to every module and/or plugin. More...
 
std::string GetMicroserviceID ()
 Returns the id that this device is registered with. The id will only be valid, if the IGTLMessageSource has been registered using RegisterAsMicroservice(). More...
 
virtual void GraftNthOutput (unsigned int idx, itk::DataObject *graft)
 Graft the specified DataObject onto this ProcessObject's output. More...
 
virtual void GraftOutput (itk::DataObject *graft)
 Graft the specified DataObject onto this ProcessObject's output. More...
 
virtual itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
virtual itk::DataObject::Pointer MakeOutput (const DataObjectIdentifierType &name) override
 
virtual void SetParameters (const mitk::PropertyList *)
 Set all filter parameters as the PropertyList p. More...
 
virtual mitk::PropertyList::ConstPointer GetParameters () const
 Get all filter parameters as a PropertyList. More...
 
void SetFPS (unsigned int fps)
 Sets the fps used for streaming this source. More...
 
unsigned int GetFPS ()
 Gets the fps used for streaming this source. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::IGTLDeviceSource
static Pointer New ()
 

Protected Member Functions

 IGTLMessageProvider ()
 
virtual ~IGTLMessageProvider ()
 
virtual void GenerateData () override
 filter execute method More...
 
void CreateOutputs ()
 Create the necessary outputs for the m_IGTLDevice. More...
 
virtual void OnIncomingMessage () override
 This method is called when the IGTL device hold by this class receives a new message. More...
 
virtual void OnIncomingCommand () override
 This method is called when the IGTL device hold by this class receives a new command. More...
 
virtual void OnLostConnection () override
 This method is called when the IGTL device lost the connection to the other side. More...
 
void ConnectTo (mitk::IGTLMessageSource *UpstreamFilter)
 Connects the input of this filter to the outputs of the given IGTLMessageSource. More...
 
void DisconnectFrom (mitk::IGTLMessageSource *UpstreamFilter)
 Disconnects this filter from the outputs of the given IGTLMessageSource. More...
 
mitk::IGTLMessageSource::Pointer GetFittingSource (const char *requestedType)
 Looks for microservices that provide messages with the requested type. More...
 
void InvokeStartStreamingEvent ()
 
void InvokeStopStreamingEvent ()
 
- Protected Member Functions inherited from mitk::IGTLDeviceSource
 IGTLDeviceSource ()
 
virtual ~IGTLDeviceSource ()
 
void CreateOutputs ()
 Create the necessary outputs for the m_IGTLDevice. More...
 
virtual void RemoveObservers ()
 Removes all observers that listen to the igtl device. More...
 
virtual void SetInput (unsigned int idx, const IGTLMessage *msg)
 Set input with id idx of this filter. More...
 
const IGTLMessageGetInput (void) const
 Get the input of this filter. More...
 
const IGTLMessageGetInput (unsigned int idx) const
 Get the input with id idx of this filter. More...
 
const IGTLMessageGetInput (std::string msgName) const
 Get the input with name messageName of this filter. More...
 
DataObjectPointerArraySizeType GetInputIndex (std::string msgName)
 return the index of the input with name msgName, throw std::invalid_argument exception if that name was not found More...
 
DataObjectPointerArraySizeType GetOutputIndex (std::string msgName)
 return the index of the output with name msgName, -1 if no output with that name was found More...
 
- Protected Member Functions inherited from mitk::IGTLMessageSource
 IGTLMessageSource ()
 
virtual ~IGTLMessageSource ()
 

Additional Inherited Members

- Static Public Attributes inherited from mitk::IGTLDeviceSource
static const std::string US_PROPKEY_IGTLDEVICENAME
 These Constants are used in conjunction with Microservices. More...
 
- Static Public Attributes inherited from mitk::IGTLMessageSource
static const std::string US_INTERFACE_NAME
 These Constants are used in conjunction with Microservices. More...
 
static const std::string US_PROPKEY_DEVICENAME
 
static const std::string US_PROPKEY_DEVICETYPE
 
static const std::string US_PROPKEY_ID
 
static const std::string US_PROPKEY_ISACTIVE
 
- Protected Attributes inherited from mitk::IGTLDeviceSource
mitk::IGTLDevice::Pointer m_IGTLDevice
 
unsigned int m_LostConnectionObserverTag
 
unsigned int m_IncomingCommandObserverTag
 
unsigned int m_IncomingMessageObserverTag
 
- Protected Attributes inherited from mitk::IGTLMessageSource
std::string m_Name
 
std::string m_Type
 
itk::FastMutexLock::Pointer m_StreamingFPSMutex
 
unsigned int m_StreamingFPS
 
us::ServiceRegistration< Self > m_ServiceRegistration
 

Detailed Description

Provides information/objects from a MITK-Pipeline to other OpenIGTLink devices.

This class is intended as the drain of the pipeline. Other OpenIGTLink devices connect with the IGTLDevice hold by this provider. The other device asks for a certain data type. The provider checks if there are other IGTLMessageSources available that provide this data type. If yes the provider connects with this source and sends the message to the requesting device.

If a STT message was received the provider looks for fitting messageSources. Once found it connects with it, starts a timing thread (which updates the pipeline) and sends the result to the requesting device.

If a GET message was received the provider just calls an update of the found source and sends the result without connecting to the source.

If a STP message was received it stops the thread and disconnects from the previous source.

So far the provider can just connect with one source.

Definition at line 51 of file mitkIGTLMessageProvider.h.

Member Typedef Documentation

Definition at line 58 of file mitkIGTLMessageProvider.h.

Constructor & Destructor Documentation

mitk::IGTLMessageProvider::IGTLMessageProvider ( )
protected
mitk::IGTLMessageProvider::~IGTLMessageProvider ( )
protectedvirtual

Definition at line 61 of file mitkIGTLMessageProvider.cpp.

Member Function Documentation

Pointer mitk::IGTLMessageProvider::Clone ( ) const
void mitk::IGTLMessageProvider::ConnectTo ( mitk::IGTLMessageSource UpstreamFilter)
protected

Connects the input of this filter to the outputs of the given IGTLMessageSource.

This method does not support smartpointer. use FilterX.GetPointer() to retrieve a dumbpointer.

Definition at line 368 of file mitkIGTLMessageProvider.cpp.

References mitk::IGTLMessageSource::GetOutput().

void mitk::IGTLMessageProvider::CreateOutputs ( )
protected

Create the necessary outputs for the m_IGTLDevice.

This Method is called internally whenever outputs need to be reset. Old Outputs are deleted when called.

Definition at line 122 of file mitkIGTLMessageProvider.cpp.

void mitk::IGTLMessageProvider::DisconnectFrom ( mitk::IGTLMessageSource UpstreamFilter)
protected

Disconnects this filter from the outputs of the given IGTLMessageSource.

This method does not support smartpointer. use FilterX.GetPointer() to retrieve a dumbpointer.

Definition at line 378 of file mitkIGTLMessageProvider.cpp.

References mitk::IGTLMessageSource::GetOutput().

void mitk::IGTLMessageProvider::GenerateData ( )
overrideprotectedvirtual

filter execute method

queries the OpenIGTLink device for new messages and updates its output igtl::MessageBase objects with it.

Warning
Will raise a std::out_of_range exception, if tools were added to the OpenIGTLink device after it was set as input for this filter

Reimplemented from mitk::IGTLDeviceSource.

Definition at line 94 of file mitkIGTLMessageProvider.cpp.

References mitk::IGTLMessage::GetMessage(), and mitk::IGTLMessage::IsDataValid().

mitk::IGTLMessageSource::Pointer mitk::IGTLMessageProvider::GetFittingSource ( const char *  requestedType)
protected

Looks for microservices that provide messages with the requested type.

Definition at line 334 of file mitkIGTLMessageProvider.cpp.

References us::GetModuleContext(), mitk::IGTLMessageSource::US_INTERFACE_NAME, and mitk::IGTLMessageSource::US_PROPKEY_DEVICETYPE.

virtual unsigned int mitk::IGTLMessageProvider::GetStreamingTime ( )
virtual

Get method for the streaming time.

void mitk::IGTLMessageProvider::InvokeStartStreamingEvent ( )
protected

Invokes the start streaming event. This separate method is required, because it has to be started from the main thread. (It is used as callback function)

Definition at line 296 of file mitkIGTLMessageProvider.cpp.

Referenced by IGTLMessageProvider().

void mitk::IGTLMessageProvider::InvokeStopStreamingEvent ( )
protected

Invokes the stop streaming event. This separate method is required, because it has to be started from the main thread. (It is used as callback function)

Definition at line 301 of file mitkIGTLMessageProvider.cpp.

Referenced by IGTLMessageProvider().

bool mitk::IGTLMessageProvider::IsStreaming ( )

Returns the streaming state.

Definition at line 253 of file mitkIGTLMessageProvider.cpp.

mitk::IGTLMessageProvider::mitkClassMacro ( IGTLMessageProvider  ,
IGTLDeviceSource   
)
static Pointer mitk::IGTLMessageProvider::New ( )
static
void mitk::IGTLMessageProvider::OnIncomingCommand ( )
overrideprotectedvirtual

This method is called when the IGTL device hold by this class receives a new command.

Reimplemented from mitk::IGTLDeviceSource.

Definition at line 172 of file mitkIGTLMessageProvider.cpp.

References MITK_WARN, and RemoveRequestPrefixes().

void mitk::IGTLMessageProvider::OnIncomingMessage ( )
overrideprotectedvirtual

This method is called when the IGTL device hold by this class receives a new message.

Reimplemented from mitk::IGTLDeviceSource.

Definition at line 152 of file mitkIGTLMessageProvider.cpp.

void mitk::IGTLMessageProvider::OnLostConnection ( )
overrideprotectedvirtual

This method is called when the IGTL device lost the connection to the other side.

Reimplemented from mitk::IGTLDeviceSource.

Definition at line 157 of file mitkIGTLMessageProvider.cpp.

References MITK_DEBUG.

void mitk::IGTLMessageProvider::Send ( const IGTLMessage msg)

sends the msg to the requesting client

Note: so far it broadcasts the message to all registered clients

Definition at line 361 of file mitkIGTLMessageProvider.cpp.

void mitk::IGTLMessageProvider::StartStreamingOfSource ( mitk::IGTLMessageSource src,
unsigned int  fps 
)

Starts the streaming of the given message source with the given fps.

Definition at line 258 of file mitkIGTLMessageProvider.cpp.

References mitk::CallbackFromGUIThread::CallThisFromGUIThread(), mitk::CallbackFromGUIThread::GetInstance(), and MITK_WARN.

void mitk::IGTLMessageProvider::StopStreamingOfAllSources ( )

Stops the streaming of all message source.

Definition at line 323 of file mitkIGTLMessageProvider.cpp.

References mitk::CallbackFromGUIThread::CallThisFromGUIThread(), and mitk::CallbackFromGUIThread::GetInstance().

void mitk::IGTLMessageProvider::StopStreamingOfSource ( mitk::IGTLMessageSource src)

Stops the streaming of the given message source.

Definition at line 306 of file mitkIGTLMessageProvider.cpp.

References mitk::CallbackFromGUIThread::CallThisFromGUIThread(), and mitk::CallbackFromGUIThread::GetInstance().

void mitk::IGTLMessageProvider::Update ( )
overridevirtual

Definition at line 74 of file mitkIGTLMessageProvider.cpp.

References mitk::New(), and Update().


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