gwnavruntime/visualdebug/messages/messageblobhandler.h Source File

messageblobhandler.h
Go to the documentation of this file.
1 /*
2 * Copyright 2016 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 #pragma once
8 
12 
13 namespace Kaim
14 {
15 
16 class MessageBlobHandler : public Net::AMP::IMessageHandler
17 {
18 public:
19  MessageBlobHandler() : m_logReceivedUnknownBlobType(true) {}
20  virtual ~MessageBlobHandler() {}
21  virtual void Handle(Net::AMP::Message* message);
22  virtual Mode HandleMode() { return Handle_OnUserDemand; }
23 
24  template<class T>
25  void SetReceiverVal(IMessageReceiver* receiver) { m_messageReceiverRegistry.SetVal<T>(receiver); }
26 
27  void SetReceiverVal(KyUInt32 blobTypeId, IMessageReceiver* receiver) { m_messageReceiverRegistry.SetVal(blobTypeId, receiver); }
28 
29  template<class T>
30  void SetReceiverRef(IMessageReceiver* receiver) { m_messageReceiverRegistry.SetRef<T>(receiver); }
31 
32  void SetReceiverRef(KyUInt32 blobTypeId, IMessageReceiver* receiver) { m_messageReceiverRegistry.SetRef(blobTypeId, receiver); }
33 
34  KyResult TransferContent(MessageReceiverRegistry& fromRegistry) { return m_messageReceiverRegistry.TransferContent(fromRegistry); }
35 
36  void Clear() { m_messageReceiverRegistry.Clear(); }
37 
38 public: // internal
39  void Receive(Net::AMP::Message* message, KyUInt32 blobTypeId, const char* msgBuffer, KyUInt32 size);
40 
41 public: // internal
42  MessageReceiverRegistry m_messageReceiverRegistry;
43  bool m_logReceivedUnknownBlobType;
44 };
45 
46 
47 class MessageAggregatedBlobHandler : public Net::AMP::IMessageHandler
48 {
49 public:
50  MessageAggregatedBlobHandler(Ptr<MessageBlobHandler> msgBlobHandler)
51  : m_msgBlobHandler(msgBlobHandler)
52  {}
53 
54  virtual ~MessageAggregatedBlobHandler() {}
55  virtual void Handle(Net::AMP::Message* message);
56  virtual Mode HandleMode() { return Handle_OnUserDemand; }
57 
58 protected:
59  Ptr<MessageBlobHandler> m_msgBlobHandler;
60 };
61 
62 
63 }
64 
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17