Main Page
Namespace List
Class Hierarchy
Alphabetical List
Compound List
File List
Namespace Members
Compound Members
File Members
Go to the documentation of this file.
15#ifndef __igtlMessageHandlerMacro_h
16#define __igtlMessageHandlerMacro_h
32#if OpenIGTLink_PROTOCOL_VERSION >= 3
33#define igtlMessageHandlerClassMacro(messagetype, classname, datatype) \
34 class classname : public ::igtl::MessageHandler \
37 typedef classname Self; \
38 typedef ::igtl::MessageHandler Superclass; \
39 typedef igtl::SmartPointer<Self> Pointer; \
40 typedef igtl::SmartPointer<const Self> ConstPointer; \
41 igtlTypeMacro(classname, ::igtl::MessageHandler); \
42 igtlNewMacro(classname); \
44 virtual const char* GetMessageType() \
46 return this->m_Message->GetDeviceType(); \
48 virtual int Process(messagetype*, datatype*); \
49 int ReceiveMessage(::igtl::Socket* socket, ::igtl::MessageBase* header, int pos) \
53 this->m_Message->SetMessageHeader(header); \
54 this->m_Message->InitBuffer(); \
56 int s = socket->Receive((void*)((char*)this->m_Message->GetBufferBodyPointer()+pos), \
57 this->m_Message->GetBufferBodySize()-pos); \
62 if (s+pos >= this->m_Message->GetBufferBodySize()) \
64 int r = this->m_Message->Unpack(this->m_CheckCRC); \
67 Process(this->m_Message, this->m_Data); \
76 virtual void CheckCRC(int i) \
80 this->m_CheckCRC = 0; \
84 this->m_CheckCRC = 1; \
87 void SetData(datatype* p) \
93 return this->m_Data; \
98 this->m_Message = messagetype::New(); \
99 this->m_CheckCRC = 1; \
100 this->m_Data = NULL; \
105 messagetype::Pointer m_Message; \
109 #define igtlMessageHandlerClassMacro(messagetype, classname, datatype) \
110 class classname : public ::igtl::MessageHandler \
113 typedef classname Self; \
114 typedef ::igtl::MessageHandler Superclass; \
115 typedef igtl::SmartPointer<Self> Pointer; \
116 typedef igtl::SmartPointer<const Self> ConstPointer; \
117 igtlTypeMacro(classname, ::igtl::MessageHandler); \
118 igtlNewMacro(classname); \
120 virtual std::string GetMessageType() const \
122 return this->m_Message->GetMessageType(); \
124 virtual const char* GetMessageType() \
126 return this->m_Message->GetType(); \
128 virtual const char* GetMessageType() \
130 return this->m_Message->GetDeviceType(); \
132 virtual int Process(messagetype*, datatype*); \
133 int ReceiveMessage(::igtl::Socket* socket, ::igtl::MessageBase* header, int pos) \
137 this->m_Message->SetMessageHeader(header); \
138 this->m_Message->AllocateBuffer(); \
140 int s = socket->Receive((void*)((char*)this->m_Message->GetBufferBodyPointer()+pos), \
141 this->m_Message->GetBufferBodySize()-pos); \
146 if (s+pos >= this->m_Message->GetBufferBodySize()) \
148 int r = this->m_Message->Unpack(this->m_CheckCRC); \
151 Process(this->m_Message, this->m_Data); \
160 virtual void CheckCRC(int i) \
164 this->m_CheckCRC = 0; \
168 this->m_CheckCRC = 1; \
171 void SetData(datatype* p) \
175 datatype* GetData() \
177 return this->m_Data; \
182 this->m_Message = messagetype::New(); \
183 this->m_CheckCRC = 1; \
184 this->m_Data = NULL; \
189 messagetype::Pointer m_Message; \
Generated for OpenIGTLink by
Doxygen
1.9.8 written by Dimitri van Heesch,
© 1997-2012