25 #ifndef INCLUDED_MessageHandler_h_GUID_A7A258A7_A369_46BA_C44F_6FFE56DB464A 26 #define INCLUDED_MessageHandler_h_GUID_A7A258A7_A369_46BA_C44F_6FFE56DB464A 34 #include <boost/optional.hpp> 35 #include <boost/noncopyable.hpp> 54 template <
typename Handler,
typename Registrar>
57 typedef Handler handler_type;
62 void registerHandler(handler_type handler,
void *userdata,
65 m_reg->registerHandler(handler, userdata, msgType);
67 void unregisterHandler(handler_type handler,
void *userdata,
70 m_reg->unregisterHandler(handler, userdata, msgType);
84 template <
typename MessageTraits>
87 typedef typename MessageTraits::handler_type handler_type;
88 typedef typename MessageTraits::registration_type registration_type;
95 : m_handler(handler), m_data(userdata), m_sender(sender),
105 : m_handler(handler), m_data(userdata), m_msgType(msgType) {}
112 if (m_reg.is_initialized()) {
113 m_reg->unregisterHandler(m_handler, m_data, m_sender,
123 m_reg->registerHandler(m_handler, m_data, m_sender, m_msgType);
130 handler_type m_handler;
134 boost::optional<registration_type> m_reg;
137 template <
typename MessageTraits>
138 using MessageHandlerPtr = shared_ptr<MessageHandler<MessageTraits> >;
140 template <
typename MessageTraits>
141 using MessageHandlerList = std::vector<MessageHandlerPtr<MessageTraits> >;
143 typedef std::vector<shared_ptr<MessageHandlerBase> >
144 GenericMessageHandlerList;
147 #endif // INCLUDED_MessageHandler_h_GUID_A7A258A7_A369_46BA_C44F_6FFE56DB464A Definition: MessageHandler.h:58
Handles spatial transformations.
Definition: SerializationTraitExample_Complicated.h:40
RAII class template managing a message handler callback.
Definition: MessageHandler.h:85
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Header to bring shared_ptr into the osvr namespace.
Definition: MessageHandler.h:42
MessageHandler(handler_type handler, void *userdata=nullptr, RawSenderType sender=RawSenderType(), RawMessageType msgType=RawMessageType())
Constructor taking your handler's basic info, and optionally a sender, and optionally a message type...
Definition: MessageHandler.h:92
void registerHandler(registration_type reg)
Register handler on the given registration policy value.
Definition: MessageHandler.h:120
~MessageHandler()
destructor: automatically unregisters handler.
Definition: MessageHandler.h:127
MessageHandler(handler_type handler, void *userdata, RawMessageType msgType)
Constructor taking your handler's basic info and a message type.
Definition: MessageHandler.h:103
A class template for the common message traits where the registrar is passed by pointer, has registerHandler and unregisterHandler methods, and doesn't take a RawSenderType because it's implied.
Definition: MessageHandler.h:55
Type-safe wrapper with built-in default for a VRPN "message type" integer.
Definition: RawMessageType.h:45
Type-safe wrapper with built-in default for a VRPN "sender type" integer.
Definition: RawSenderType.h:45
void unregisterHandler()
Method if you want to manually unregister your handler.
Definition: MessageHandler.h:111