Medical Imaging Interaction Toolkit  2018.4.99-b7f3afaa
Medical Imaging Interaction Toolkit
mitk::IGTLMessageSource Class Reference

OpenIGTLink message source. More...

#include <mitkIGTLMessageSource.h>

Inheritance diagram for mitk::IGTLMessageSource:
Collaboration diagram for mitk::IGTLMessageSource:

Public Member Functions

 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 RegisterAsMicroservice ()
 Registers this object as a Microservice, making it available to every module and/or plugin. To unregister, call UnregisterMicroservice(). 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...
 
itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
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 Attributes

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 Member Functions

 IGTLMessageSource ()
 
 ~IGTLMessageSource () override
 

Protected Attributes

std::string m_Name
 
std::string m_Type
 
itk::FastMutexLock::Pointer m_StreamingFPSMutex
 
unsigned int m_StreamingFPS
 
us::ServiceRegistration< Self > m_ServiceRegistration
 

Detailed Description

OpenIGTLink message source.

Base class for all OpenIGTLink filters that produce OpenIGTLink message objects as output. This class defines the output-interface for OpenIGTLinkMessageFilters.

Warning
: if Update() is called on any output object, all IGTLMessage filters will generate new output data for all outputs, not just the one on which Update() was called.

Definition at line 42 of file mitkIGTLMessageSource.h.

Constructor & Destructor Documentation

◆ IGTLMessageSource()

mitk::IGTLMessageSource::IGTLMessageSource ( )
protected

Definition at line 33 of file mitkIGTLMessageSource.cpp.

References m_StreamingFPSMutex.

◆ ~IGTLMessageSource()

mitk::IGTLMessageSource::~IGTLMessageSource ( )
overrideprotected

Definition at line 40 of file mitkIGTLMessageSource.cpp.

Member Function Documentation

◆ GetFPS()

unsigned int mitk::IGTLMessageSource::GetFPS ( )

Gets the fps used for streaming this source.

Definition at line 191 of file mitkIGTLMessageSource.cpp.

References m_StreamingFPS, and m_StreamingFPSMutex.

◆ GetMicroserviceID()

std::string mitk::IGTLMessageSource::GetMicroserviceID ( )

Returns the id that this device is registered with. The id will only be valid, if the IGTLMessageSource has been registered using RegisterAsMicroservice().

Definition at line 125 of file mitkIGTLMessageSource.cpp.

References us::ServiceRegistration< I1, I2, I3 >::GetReference(), m_ServiceRegistration, us::Any::ToString(), and US_PROPKEY_ID.

◆ GetName()

virtual std::string mitk::IGTLMessageSource::GetName ( )
virtual
Returns
Returns a human readable name of this source. There will be a default name, or you can set the name with the method SetName() if you want to change it.

Referenced by mitk::IGTLDeviceSource::RegisterAsMicroservice().

◆ GetOutput() [1/3]

◆ GetOutput() [2/3]

mitk::IGTLMessage * mitk::IGTLMessageSource::GetOutput ( DataObjectPointerArraySizeType  idx)

return the output with id idx of the filter

Definition at line 56 of file mitkIGTLMessageSource.cpp.

◆ GetOutput() [3/3]

mitk::IGTLMessage * mitk::IGTLMessageSource::GetOutput ( const std::string &  messageName)

return the output with name messageName of the filter

Definition at line 69 of file mitkIGTLMessageSource.cpp.

◆ GetOutputIndex()

itk::ProcessObject::DataObjectPointerArraySizeType mitk::IGTLMessageSource::GetOutputIndex ( std::string  messageName)

return the index of the output with name messageName, -1 if no output with that name was found

Warning
if a subclass has outputs that have different data type than igtl::MessageBase, they have to overwrite this method

Definition at line 87 of file mitkIGTLMessageSource.cpp.

◆ GetParameters()

mitk::PropertyList::ConstPointer mitk::IGTLMessageSource::GetParameters ( ) const
virtual

Get all filter parameters as a PropertyList.

This method allows to get all parameters of a filter with one method call. The returned PropertyList must be assigned to a SmartPointer immediately, or else it will get destroyed. Every filter must overwrite this method to create a filter-specific PropertyList. Note that property names must be unique over all MITK-IGT filters. Therefore each filter should use its name as a prefix for each property name. Secondly, each filter should list the property names and data types in the method documentation.

Definition at line 175 of file mitkIGTLMessageSource.cpp.

References mitk::PropertyList::New().

◆ GetType()

virtual std::string mitk::IGTLMessageSource::GetType ( )
virtual
Returns
Returns a human readable type of this source. There will be a default type, or you can set the name with the method SetType(). You have to set this parameter otherwise it will not be found by the message provider.

◆ GraftNthOutput()

void mitk::IGTLMessageSource::GraftNthOutput ( unsigned int  idx,
itk::DataObject *  graft 
)
virtual

Graft the specified DataObject onto this ProcessObject's output.

See itk::ImageSource::GraftNthOutput for details

Definition at line 137 of file mitkIGTLMessageSource.cpp.

References GetOutput().

Referenced by GraftOutput().

◆ GraftOutput()

void mitk::IGTLMessageSource::GraftOutput ( itk::DataObject *  graft)
virtual

Graft the specified DataObject onto this ProcessObject's output.

See itk::ImageSource::Graft Output for details

Definition at line 132 of file mitkIGTLMessageSource.cpp.

References GraftNthOutput().

◆ MakeOutput() [1/2]

itk::DataObject::Pointer mitk::IGTLMessageSource::MakeOutput ( DataObjectPointerArraySizeType  idx)
override

Allocates a new output object and returns it. Currently the index idx is not evaluated.

Parameters
idxthe index of the output for which an object should be created
Returns
the new object

Definition at line 160 of file mitkIGTLMessageSource.cpp.

References mitk::IGTLMessage::New().

Referenced by mitk::IGTLMessageProvider::CreateOutputs(), mitk::IGTLDeviceSource::CreateOutputs(), mitk::ImageToIGTLMessageFilter::CreateOutputsForAllInputs(), mitk::NavigationDataToIGTLMessageFilter::CreateOutputsForAllInputs(), and MakeOutput().

◆ MakeOutput() [2/2]

itk::DataObject::Pointer mitk::IGTLMessageSource::MakeOutput ( const DataObjectIdentifierType &  name)
override

This is a default implementation to make sure we have something. Once all the subclasses of ProcessObject provide an appopriate MakeOutput(), then ProcessObject::MakeOutput() can be made pure virtual.

Definition at line 165 of file mitkIGTLMessageSource.cpp.

References MakeOutput(), and mitk::IGTLMessage::New().

◆ mitkClassMacroItkParent()

mitk::IGTLMessageSource::mitkClassMacroItkParent ( IGTLMessageSource  ,
itk::ProcessObject   
)

◆ RegisterAsMicroservice()

void mitk::IGTLMessageSource::RegisterAsMicroservice ( )
virtual

Registers this object as a Microservice, making it available to every module and/or plugin. To unregister, call UnregisterMicroservice().

Reimplemented in mitk::IGTLDeviceSource.

Definition at line 101 of file mitkIGTLMessageSource.cpp.

References us::GetModuleContext(), mitk::UIDGenerator::GetUID(), m_Name, m_ServiceRegistration, m_Type, US_PROPKEY_DEVICENAME, US_PROPKEY_DEVICETYPE, and US_PROPKEY_ID.

◆ SetFPS()

void mitk::IGTLMessageSource::SetFPS ( unsigned int  fps)

Sets the fps used for streaming this source.

Definition at line 183 of file mitkIGTLMessageSource.cpp.

References m_StreamingFPS, and m_StreamingFPSMutex.

◆ SetName()

virtual void mitk::IGTLMessageSource::SetName ( std::string  _arg)
virtual

◆ SetParameters()

virtual void mitk::IGTLMessageSource::SetParameters ( const mitk::PropertyList )
inlinevirtual

Set all filter parameters as the PropertyList p.

This method allows to set all parameters of a filter with one method call. For the names of the parameters, take a look at the GetParameters method of the filter This method has to be overwritten by each MITK-IGT filter.

Definition at line 163 of file mitkIGTLMessageSource.h.

◆ SetType()

virtual void mitk::IGTLMessageSource::SetType ( std::string  _arg)
virtual
Returns
Returns a human readable type of this source. There will be a default type, or you can set the name with the method SetType(). You have to set this parameter otherwise it will not be found by the message provider.

Referenced by mitk::NavigationDataToIGTLMessageFilter::CreateOutputsForAllInputs().

◆ UnRegisterMicroservice()

void mitk::IGTLMessageSource::UnRegisterMicroservice ( )
virtual

Registers this object as a Microservice, making it available to every module and/or plugin.

Definition at line 116 of file mitkIGTLMessageSource.cpp.

References m_ServiceRegistration, and us::ServiceRegistrationBase::Unregister().

Member Data Documentation

◆ m_Name

std::string mitk::IGTLMessageSource::m_Name
protected

◆ m_ServiceRegistration

us::ServiceRegistration<Self> mitk::IGTLMessageSource::m_ServiceRegistration
protected

◆ m_StreamingFPS

unsigned int mitk::IGTLMessageSource::m_StreamingFPS
protected

The frames per second used for streaming

Definition at line 201 of file mitkIGTLMessageSource.h.

Referenced by GetFPS(), and SetFPS().

◆ m_StreamingFPSMutex

itk::FastMutexLock::Pointer mitk::IGTLMessageSource::m_StreamingFPSMutex
protected

mutex to control access to m_StreamingFPS

Definition at line 199 of file mitkIGTLMessageSource.h.

Referenced by GetFPS(), IGTLMessageSource(), and SetFPS().

◆ m_Type

std::string mitk::IGTLMessageSource::m_Type
protected

◆ US_INTERFACE_NAME

const std::string mitk::IGTLMessageSource::US_INTERFACE_NAME
static

These Constants are used in conjunction with Microservices.

Definition at line 119 of file mitkIGTLMessageSource.h.

Referenced by mitk::IGTLMessageProvider::GetFittingSource().

◆ US_PROPKEY_DEVICENAME

const std::string mitk::IGTLMessageSource::US_PROPKEY_DEVICENAME
static

◆ US_PROPKEY_DEVICETYPE

const std::string mitk::IGTLMessageSource::US_PROPKEY_DEVICETYPE
static

◆ US_PROPKEY_ID

const std::string mitk::IGTLMessageSource::US_PROPKEY_ID
static

◆ US_PROPKEY_ISACTIVE

const std::string mitk::IGTLMessageSource::US_PROPKEY_ISACTIVE
static

Definition at line 123 of file mitkIGTLMessageSource.h.


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