Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  
igtlMessageFactory.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: The OpenIGTLink Library
4 Language: C++
5 Web page: http://openigtlink.org/
6
7 Copyright (c) Insight Software Consortium. All rights reserved.
8
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the above copyright notices for more information.
12
13=========================================================================*/
14#ifndef __igtlMessageFactory_h
15#define __igtlMessageFactory_h
16
17#include "igtlMacro.h"
18#include "igtlMessageBase.h"
19#include "igtlMessageHeader.h"
20#include "igtlObject.h"
21#include "igtl_header.h"
22
23#include <map>
24
25namespace igtl
26{
27
29{
30public:
31
36
39
41 typedef igtl::MessageBase::Pointer (*PointerToMessageBaseNew)();
42
47 virtual void AddMessageType(const std::string& messageTypeName, MessageFactory::PointerToMessageBaseNew messageTypeNewPointer);
48
52 virtual MessageFactory::PointerToMessageBaseNew GetMessageTypeNewPointer(const std::string& messageTypeName) const;
53
55 bool IsValid(igtl::MessageHeader::Pointer headerMsg);
56
58 bool IsValid(igtl::MessageHeader::Pointer headerMsg) const;
59
65 igtl::MessageBase::Pointer GetMessage(igtl::MessageHeader::Pointer headerMsg);
66
71 igtl::MessageHeader::Pointer CreateHeaderMessage(int headerVersion) const;
72
77 igtl::MessageBase::Pointer CreateReceiveMessage(igtl::MessageHeader::Pointer headerMsg) const;
78
82 igtl::MessageBase::Pointer CreateSendMessage(const std::string& messageType, int headerVersion) const;
83
85 void GetAvailableMessageTypes(std::vector<std::string>& types) const;
86
87protected:
90
91private:
93 std::map<std::string, PointerToMessageBaseNew> IgtlMessageTypes;
94
95}; // end class
96
97} // end namespace
98
99#endif // __igtlMessageFactory_h
SmartPointer< Self > Pointer
virtual MessageFactory::PointerToMessageBaseNew GetMessageTypeNewPointer(const std::string &messageTypeName) const
igtl::MessageBase::Pointer GetMessage(igtl::MessageHeader::Pointer headerMsg)
igtl::MessageHeader::Pointer CreateHeaderMessage(int headerVersion) const
virtual void AddMessageType(const std::string &messageTypeName, MessageFactory::PointerToMessageBaseNew messageTypeNewPointer)
SmartPointer< Self > Pointer
bool IsValid(igtl::MessageHeader::Pointer headerMsg)
Checks that headerMsg is not null and the headerMsg->GetDeviceType() refers to a valid type,...
igtl::MessageBase::Pointer CreateSendMessage(const std::string &messageType, int headerVersion) const
igtlTypeMacro(MessageFactory, Object) igtlNewMacro(MessageFactory)
bool IsValid(igtl::MessageHeader::Pointer headerMsg) const
Checks that headerMsg is not null and the headerMsg->GetDeviceType() refers to a valid type,...
void GetAvailableMessageTypes(std::vector< std::string > &types) const
Return the list of known message types.
igtl::MessageBase::Pointer CreateReceiveMessage(igtl::MessageHeader::Pointer headerMsg) const
SmartPointer< const Self > ConstPointer
Base class for most igtl classes.
Definition igtlObject.h:61
Implements transparent reference counting.
#define igtlNewMacro(x)
Definition igtlMacro.h:431
#define IGTLCommon_EXPORT
The "igtl" namespace contains all OpenIGTLink classes. There are several nested namespaces within the...

Generated for OpenIGTLink by Doxygen 1.9.8 written by Dimitri van Heesch, © 1997-2012