VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
guiThreadNetworkCallbackManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
12 
13 #pragma once
14 
15 #include <vrfGuiCore/vrfGuiCore.h>
20 
21 #include <vrvUtil/signalslib.h>
22 #include <vrvCore/DtDe.h>
23 
24 #include <vrfplan/plan.h>
25 
26 class DtSimMessage;
27 
36 
37 #define CONNECT_FOR_SIM_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).simMessageSignal(_type).connect(_function);
38 #define DISCONNECT_FOR_SIM_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).simMessageSignal(_type).disconnect(_function);
39 
40 #define CONNECT_FOR_OBJECT_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).objectMessageSignal(_type).connect(_function);
41 #define DISCONNECT_FOR_OBJECT_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).objectMessageSignal(_type).disconnect(_function);
42 
43 #define CONNECT_FOR_COMMENT_INTERACTION(_function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtCommentInteractionInterface::theName()).connect(_function);
44 #define DISCONNECT_FOR_COMMENT_INTERACTION(_function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtCommentInteractionInterface::theName()).disconnect(_function);
45 
46 #define CONNECT_FOR_INFLUENCE_INTERACTION(_function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtInfluenceInteractionInterface::theName()).connect(_function);
47 #define DISCONNECT_FOR_INFLUENCE_INTERACTION(_function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(DtInfluenceInteractionInterface::theName()).disconnect(_function);
48 
49 #define CONNECT_FOR_INTERFACE_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(_type).connect(_function);
50 #define DISCONNECT_FOR_INTERFACE_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).networkInterfaceMessageSignal(_type).disconnect(_function);
51 
52 #define CONNECT_FOR_RADIO_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).radioMessageSignal(_type).connect(_function);
53 #define DISCONNECT_FOR_RADIO_MESSAGE(_type, _function) makVrf::DtGuiThreadNetworkCallbackManager::instance(myDe).radioMessageSignal(_type).disconnect(_function);
54 
55 namespace makVrf
56 {
57  class DtNetworkMessageInterface;
59 
60  typedef boost::signal<void (DtSimMessage*)> SimMessageSignal;
61  typedef boost::signal<void (const DtVrfObjectMessage*)> ObjectMessageCallbackSignal;
62  typedef boost::signal<void (DtNetworkMessageInterface*)> NetworkInterfaceCallbackSignal;
63 
74  {
75  public:
76  typedef std::map<int, SimMessageSignal*> DtVrfMessageCallbackMap;
77  typedef std::map<DtAdminContentMessageType, ObjectMessageCallbackSignal*> DtAdminContentMessageCallbackMap;
78  typedef std::map<DtSimReportMessageType, ObjectMessageCallbackSignal*> DtSimReportMessageCallbackMap;
79  typedef std::map<DtSimTaskMessageType, ObjectMessageCallbackSignal*> DtSimTaskMessageCallbackMap;
80  typedef std::map<DtSetMessageType, ObjectMessageCallbackSignal*> DtSetMessageCallbackMap;
81  typedef std::map<std::string, NetworkInterfaceCallbackSignal*> DtNetworkCallbackMap;
82 
83  public:
86 
88  static DtGuiThreadNetworkCallbackManager& instance(makVrv::DtDe& de);
89 
90  public:
94 
95  virtual SimMessageSignal& simMessageSignal(int type);
97 
101 
102  virtual ObjectMessageCallbackSignal& objectMessageSignal(const DtAdminContentMessageType& type);
104 
108 
109  virtual ObjectMessageCallbackSignal& radioMessageSignal(const DtSimReportMessageType& type);
110  virtual ObjectMessageCallbackSignal& radioMessageSignal(const DtSimTaskMessageType& type);
111  virtual ObjectMessageCallbackSignal& radioMessageSignal(const DtSetMessageType& type);
113 
116 
117  virtual NetworkInterfaceCallbackSignal& networkInterfaceMessageSignal(std::string messageName);
119 
121  virtual void messageReceived(DtNetworkMessageInterface*);
122 
124  virtual void registerForInfluenceInteraction();
125 
127  virtual void unregisterForInfluenceInteraction();
128 
130  virtual void tdlMessageReceived(const DtTDLGenericNetworkMessage&);
131  boost::signal<void (const DtTDLGenericNetworkMessage&)> signal_tdlMessageReceived;
132 
133  protected:
135  virtual void registerSimMessageCallbackWithDriver(int t);
136 
138  virtual void unregisterSimMessageCallbackWithDriver(int t);
139 
140  virtual void processSimMessageCallback(DtNetworkMessageInterface*);
141 
142  virtual void vrfObjectMessageCallback(DtSimMessage* msg);
143 
145  virtual void processVrfObjectMessageInterfaceCallback(DtNetworkMessageInterface* msg);
146 
148  virtual void processVrfObjectMessageCallback(DtVrfObjectMessage* msg, bool forFrontEndOnly = true);
149 
151  virtual void registerForCommentInteraction();
152 
154  virtual void unregisterForCommentInteraction();
155 
156  protected:
157  virtual void registerAdminMessageCallbackFor(const DtAdminContentMessageType& type);
158  virtual void unregisterAdminMessageCallbackFor(const DtAdminContentMessageType& type);
159 
160  virtual void registerReportMessageCallbackFor(const DtSimReportMessageType& type);
161  virtual void unregisterReportMessageCallbackFor(const DtSimReportMessageType& type);
162 
163  virtual void registerTaskMessageCallbackFor(const DtSimTaskMessageType& type);
164  virtual void unregisterTaskMessageCallbackFor(const DtSimTaskMessageType& type);
165 
166  virtual void registerSetMessageCallbackFor(const DtSetMessageType& type);
167  virtual void unregisterSetMessageCallbackFor(const DtSetMessageType& type);
168 
169  protected:
176  };
177 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)