gwnavruntime/visualdebug/messages/messageblobhandler.h Source File

messageblobhandler.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 #ifndef Navigation_MessageBlobHandler_H
8 #define Navigation_MessageBlobHandler_H
9 
13 
14 namespace Kaim
15 {
16 
17 class MessageBlobHandler : public Net::AMP::IMessageHandler
18 {
19 public:
20  MessageBlobHandler() : m_logReceivedUnknownBlobType(true) {}
21  virtual ~MessageBlobHandler() {}
22  virtual void Handle(Net::AMP::Message* message);
23  virtual Mode HandleMode() { return Handle_OnUserDemand; }
24 
25  template<class T>
26  void SetReceiverVal(IMessageReceiver* receiver) { m_messageReceiverRegistry.SetVal<T>(receiver); }
27 
28  void SetReceiverVal(KyUInt32 blobTypeId, IMessageReceiver* receiver) { m_messageReceiverRegistry.SetVal(blobTypeId, receiver); }
29 
30  template<class T>
31  void SetReceiverRef(IMessageReceiver* receiver) { m_messageReceiverRegistry.SetRef<T>(receiver); }
32 
33  void SetReceiverRef(KyUInt32 blobTypeId, IMessageReceiver* receiver) { m_messageReceiverRegistry.SetRef(blobTypeId, receiver); }
34 
35  KyResult TransferContent(MessageReceiverRegistry& fromRegistry) { return m_messageReceiverRegistry.TransferContent(fromRegistry); }
36 
37  void Clear() { m_messageReceiverRegistry.Clear(); }
38 
39 public: // internal
40  void Receive(Net::AMP::Message* message, KyUInt32 blobTypeId, const char* msgBuffer, KyUInt32 size);
41 
42 public: // internal
43  MessageReceiverRegistry m_messageReceiverRegistry;
44  bool m_logReceivedUnknownBlobType;
45 };
46 
47 
48 class MessageAggregatedBlobHandler : public Net::AMP::IMessageHandler
49 {
50 public:
51  MessageAggregatedBlobHandler(Ptr<MessageBlobHandler> msgBlobHandler)
52  : m_msgBlobHandler(msgBlobHandler)
53  {}
54 
55  virtual ~MessageAggregatedBlobHandler() {}
56  virtual void Handle(Net::AMP::Message* message);
57  virtual Mode HandleMode() { return Handle_OnUserDemand; }
58 
59 protected:
60  Ptr<MessageBlobHandler> m_msgBlobHandler;
61 };
62 
63 
64 }
65 
66 #endif
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
Definition: gamekitcrowddispersion.h:20
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36