Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
Superclass for OpenIGTLink server. More...
#include <mitkIGTLServer.h>
Public Types | |
typedef std::list< igtl::Socket::Pointer > | SocketListType |
typedef SocketListType::iterator | SocketListIteratorType |
Public Types inherited from mitk::IGTLDevice | |
enum | IGTLDeviceState { Setup, Ready, Running } |
Type for state variable. The IGTLDevice is always in one of these states. More... | |
Public Member Functions | |
mitkClassMacro (IGTLServer, IGTLDevice) mitkNewMacro1Param(Self | |
bool Pointer | Clone () const |
virtual bool | OpenConnection () override |
Initialize the connection for the IGTLServer. More... | |
virtual bool | CloseConnection () override |
Closes the connection to the device. More... | |
virtual unsigned int | GetNumberOfConnections () override |
Returns the number of client connections of this device. More... | |
Public Member Functions inherited from mitk::IGTLDevice | |
mitkClassMacroItkParent (IGTLDevice, itk::Object) IGTLDevice(bool ReadFully) | |
virtual bool | StopCommunication () |
Stops the communication between the two devices. More... | |
bool | StartCommunication () |
Starts the communication between the two devices. More... | |
void | RunCommunication (void(IGTLDevice::*ComFunction)(void), itk::FastMutexLock *mutex) |
Continuously calls the given function. More... | |
void | SendMessage (igtl::MessageBase::Pointer msg) |
Adds the given message to the sending queue. More... | |
void | SendMessage (const IGTLMessage *msg) |
Adds the given message to the sending queue. More... | |
IGTLDeviceState | GetState () const |
Returns current object state (Setup, Ready or Running) More... | |
igtl::MessageBase::Pointer | GetNextCommand () |
Returns the oldest message in the command queue. More... | |
igtl::ImageMessage::Pointer | GetNextImage2dMessage () |
Returns the oldest message in the receive queue. More... | |
igtl::ImageMessage::Pointer | GetNextImage3dMessage () |
igtl::TransformMessage::Pointer | GetNextTransformMessage () |
igtl::TrackingDataMessage::Pointer | GetNextTrackingDataMessage () |
igtl::StringMessage::Pointer | GetNextStringMessage () |
igtl::MessageBase::Pointer | GetNextMiscMessage () |
virtual void | SetPortNumber (int _arg) |
Sets the port number of the device. More... | |
virtual int | GetPortNumber () |
Returns the port number of the device. More... | |
virtual void | SetHostname (std::string _arg) |
Sets the ip/hostname of the device. More... | |
virtual std::string | GetHostname () |
Returns the ip/hostname of the device. More... | |
virtual std::string | GetName () const |
Returns the name of this device. More... | |
virtual void | SetName (std::string _arg) |
Sets the name of this device. More... | |
virtual void | SetReadFully (bool _arg) |
Advises this IGTL Device to always block until the whole message is read. More... | |
virtual mitk::IGTLMessageQueue::Pointer | GetMessageQueue () const |
Returns a const reference to the receive queue. More... | |
virtual mitk::IGTLMessageFactory::Pointer | GetMessageFactory () |
Returns the message factory. More... | |
virtual bool | TestConnection () |
TestConnection() tries to connect to a IGTL device on the current ip and port. More... | |
bool | SendRTSMessage (const char *type) |
Send RTS message of given type. More... | |
void | EnableInfiniteBufferingMode (mitk::IGTLMessageQueue::Pointer queue, bool enable=true) |
Sets the buffering mode of the given queue. More... | |
Protected Member Functions | |
IGTLServer (bool ReadFully) | |
virtual | ~IGTLServer () |
virtual void | Connect () override |
Call this method to check for other devices that want to connect to this one. More... | |
virtual void | Receive () override |
Call this method to receive a message. More... | |
virtual void | Send () override |
Call this method to send a message. The message will be read from the queue. So far the message is send to all connected sockets (broadcast). More... | |
virtual void | StopCommunicationWithSocket (SocketListType &toBeRemovedSockets) |
Stops the communication with the given sockets. More... | |
virtual void | StopCommunicationWithSocket (igtl::Socket *client) override |
Stops the communication with the given socket. More... | |
Protected Member Functions inherited from mitk::IGTLDevice | |
unsigned int | SendMessagePrivate (igtl::MessageBase::Pointer msg, igtl::Socket::Pointer socket) |
Sends a message. More... | |
unsigned int | ReceivePrivate (igtl::Socket *device) |
Call this method to receive a message from the given device. More... | |
void | SetState (IGTLDeviceState state) |
change object state More... | |
IGTLDevice () | |
virtual | ~IGTLDevice () |
Protected Attributes | |
SocketListType | m_RegisteredClients |
A list with all registered clients. More... | |
itk::FastMutexLock::Pointer | m_ReceiveListMutex |
itk::FastMutexLock::Pointer | m_SentListMutex |
Protected Attributes inherited from mitk::IGTLDevice | |
IGTLDeviceState | m_State |
std::string | m_Name |
bool | m_StopCommunication |
itk::FastMutexLock::Pointer | m_StopCommunicationMutex |
itk::FastMutexLock::Pointer | m_SendingFinishedMutex |
itk::FastMutexLock::Pointer | m_ReceivingFinishedMutex |
itk::FastMutexLock::Pointer | m_ConnectingFinishedMutex |
itk::FastMutexLock::Pointer | m_StateMutex |
std::string | m_Hostname |
int | m_PortNumber |
igtl::Socket::Pointer | m_Socket |
mitk::IGTLMessageQueue::Pointer | m_MessageQueue |
mitk::IGTLMessageFactory::Pointer | m_MessageFactory |
Additional Inherited Members | |
Static Public Member Functions inherited from mitk::IGTLDevice | |
static ITK_THREAD_RETURN_TYPE | ThreadStartSending (void *data) |
static start method for the sending thread. More... | |
static ITK_THREAD_RETURN_TYPE | ThreadStartReceiving (void *data) |
static start method for the receiving thread. More... | |
static ITK_THREAD_RETURN_TYPE | ThreadStartConnecting (void *data) |
static start method for the connection thread. More... | |
Superclass for OpenIGTLink server.
Implements the IGTLDevice interface for IGTLServers. In certain points it behaves different than the IGTLClient. The client connects directly to a server (it cannot connect to two different servers) while the server can connect to several clients. Therefore, it is necessary for the server to have a list with registered sockets.
Definition at line 37 of file mitkIGTLServer.h.
typedef SocketListType::iterator mitk::IGTLServer::SocketListIteratorType |
Definition at line 45 of file mitkIGTLServer.h.
typedef std::list<igtl::Socket::Pointer> mitk::IGTLServer::SocketListType |
Definition at line 44 of file mitkIGTLServer.h.
|
protected |
Constructor
Definition at line 28 of file mitkIGTLServer.cpp.
References m_ReceiveListMutex, m_SentListMutex, and mitk::New().
|
protectedvirtual |
Destructor
Definition at line 35 of file mitkIGTLServer.cpp.
bool Pointer mitk::IGTLServer::Clone | ( | ) | const |
|
overridevirtual |
Closes the connection to the device.
This may only be called if there is currently a connection to the device, but device is not running (e.g. object is in Ready state)
Reimplemented from mitk::IGTLDevice.
Definition at line 79 of file mitkIGTLServer.cpp.
References mitk::IGTLDevice::CloseConnection().
|
overrideprotectedvirtual |
Call this method to check for other devices that want to connect to this one.
In case of a client this method is doing nothing. In case of a server it is checking for other devices and if there is one it establishes a connection and adds the socket to m_RegisteredClients.
Reimplemented from mitk::IGTLDevice.
Definition at line 92 of file mitkIGTLServer.cpp.
References MITK_INFO.
|
overridevirtual |
Returns the number of client connections of this device.
Implements mitk::IGTLDevice.
Definition at line 215 of file mitkIGTLServer.cpp.
mitk::IGTLServer::mitkClassMacro | ( | IGTLServer | , |
IGTLDevice | |||
) |
|
overridevirtual |
Initialize the connection for the IGTLServer.
OpenConnection() starts the IGTLServer socket so that clients can connect to it.
mitk::Exception | Throws an exception if the given port is occupied. |
Implements mitk::IGTLDevice.
Definition at line 41 of file mitkIGTLServer.cpp.
References mitkThrowException, mitk::New(), and Setup().
|
overrideprotectedvirtual |
Call this method to receive a message.
The message will be saved in the receive queue.
Implements mitk::IGTLDevice.
Definition at line 113 of file mitkIGTLServer.cpp.
References MITK_WARN.
|
overrideprotectedvirtual |
Call this method to send a message. The message will be read from the queue. So far the message is send to all connected sockets (broadcast).
Implements mitk::IGTLDevice.
Definition at line 151 of file mitkIGTLServer.cpp.
References MITK_DEBUG.
|
protectedvirtual |
Stops the communication with the given sockets.
This method removes the given sockets from the registered clients list
Definition at line 182 of file mitkIGTLServer.cpp.
|
overrideprotectedvirtual |
Stops the communication with the given socket.
This method removes the given socket from the registered clients list
Implements mitk::IGTLDevice.
Definition at line 189 of file mitkIGTLServer.cpp.
References MITK_INFO.
|
protected |
mutex to control access to m_RegisteredClients
Definition at line 122 of file mitkIGTLServer.h.
Referenced by IGTLServer().
|
protected |
A list with all registered clients.
Definition at line 119 of file mitkIGTLServer.h.
|
protected |
mutex to control access to m_RegisteredClients
Definition at line 125 of file mitkIGTLServer.h.
Referenced by IGTLServer().