VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
externalCommsMessageTransporter.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include <vlutil/vlMachineTypes.h>
10 #include <vlpi/entityIdentifier.h>
15 
16 class DtEventManager;
18 
21 const DtUserProtocol DtQualnetSignalUserProtocol = (DtUserProtocol) 10000;
22 const DtUserProtocol DtExtendedContentSignalUserProtocol = (DtUserProtocol) 11060;
23 
24 namespace makVrfEvents
25 {
26  class DtEvent;
27  class DtDataEvent;
28  class DtExternalCommsSignalEvent;
29  struct DtExternalCommsMessageParams;
30 }
31 
33 {
34  DtU32 myMessageId;
35  DtEntityIdentifier mySender;
36  DtEntityIdentifier myReceiver;
38  double myDelay;
39 };
40 
42 {
43  DtU32 myMessageId;
44  DtEntityIdentifier mySender;
46 };
47 
49 {
50  DtEntityIdentifier myEntityId;
51  DtU32 myRadioIndex;
52 };
53 
55 
59 {
60 public:
61 
62  typedef struct _tSplitContentEntry{unsigned nSize; char* pBuffer;} SplitContentEntry;
63  typedef std::map<DtSplitMessageKey, std::map<unsigned, SplitContentEntry> > SplitContentMap;
64 
65 private:
67 
72 
73 protected:
77  virtual bool init();
78 
79 public:
83 
85 
86 public:
89  typedef std::pair<makVrfEvents::DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr> DtExternalCommsMessageCallbackParams;
92 
96 
97  virtual void addProcessMessageCallback(DtProcessMessageCallbackList::DtCallbackFunctionType fcn,
98  void* usr);
99  virtual void removeProcessMessageCallback(DtProcessMessageCallbackList::DtCallbackFunctionType fcn,
100  void* usr);
102 
104  virtual bool processVrfObjectMessageReceived(const makVrfEvents::DtExternalCommsMessageParams& params,
105  const char *pVrfObjectMessageBuffer);
106 
110 
111  virtual void addReadyToSendCallback(DtReadyToSendCallbackList::DtCallbackFunctionType fcn,
112  void* usr);
113  virtual void removeReadyToSendCallback(DtReadyToSendCallbackList::DtCallbackFunctionType fcn,
114  void* usr);
116 
120 
121  virtual void addTimeoutCallback(DtTimeoutCallbackList::DtCallbackFunctionType fcn,
122  void* usr);
123  virtual void removeTimeoutCallback(DtTimeoutCallbackList::DtCallbackFunctionType fcn,
124  void* usr);
126 
128 
129  virtual void addNewMessageCallback(DtNewMessageCallbackList::DtCallbackFunctionType fcn,
130  void* usr);
131  virtual void removeNewMessageCallback(DtNewMessageCallbackList::DtCallbackFunctionType fcn,
132  void* usr);
134 
137  bool enabled() const;
138  virtual void setEnabled(bool bEnabled);
142  virtual bool processSplitContent(const makVrfEvents::DtExternalCommsMessageParams& params,
143  const DtSignalMessageHeader& msgHdr, const char *pContent);
144 
146  virtual void processSplitContentTimeout(const DtSplitMessageKey& key);
147 
150  virtual void sendMessage(const makVrfEvents::DtExternalCommsMessageParams& params, DtVrfObjectMessage* message);
151  virtual bool reassembleVrfObjectMessage(const makVrfEvents::DtExternalCommsMessageParams& params,
152  const DtSignalMessageHeader& msgHdr);
153 
155  virtual void removeSplitContent(const DtSplitMessageKey& key);
156 
157  static void splitContentTimeoutCbk(const DtSplitMessageKey& key, void *pUsr);
158 
159 protected:
160 
161  virtual DtString entityIdToString(const DtEntityIdentifier& id) const;
162 
163  virtual void dataInteractionCallback(const makVrfEvents::DtEvent&);
164 
167  virtual void processDataInteraction(const makVrfEvents::DtDataEvent* interaction);
168 
169  virtual void processExternalCommsProcessMessage(const makVrfEvents::DtDataEvent* processMessageInteraction);
170 
171  virtual void processExternalCommsTimout(const makVrfEvents::DtDataEvent* timeoutInteraction);
172 
173  virtual void processExternalCommsReadyToSend(const makVrfEvents::DtDataEvent* readyToSendInteraction);
174 
175  virtual void signalInteractionCallback(const makVrfEvents::DtEvent&);
176  virtual void processSignalInteraction(const makVrfEvents::DtExternalCommsSignalEvent* inter);
177  virtual void sendInteraction(const makVrfEvents::DtExternalCommsMessageParams& params,
178  const DtSignalMessageHeader& msgHdr, const char* pContent);
179 
181  virtual void sendSignalInteraction(const makVrfEvents::DtExternalCommsSignalEvent& signalInteraction);
182  virtual void clearSplitContent();
183 
184 public:
185 
186 protected:
187  bool myEnabled;
196 };
197 
199 {
200  return myEnabled;
201 }
DtCallbackList< const DtExternalCommsTimeoutData & > DtTimeoutCallbackList
Definition: externalCommsMessageTransporter.h:88
DtTimeoutCallbackList myTimeoutCallbackList
Definition: externalCommsMessageTransporter.h:192
Definition: externalCommsSignalEvent.h:24
DtCommunicationManager * myCommunicationManager
Definition: externalCommsMessageTransporter.h:188
DtEntityIdentifier mySender
Definition: externalCommsMessageTransporter.h:35
DtU32 myTransmitterRadioIndex
Definition: externalCommsMessageTransporter.h:45
DtCallbackList< const DtExternalCommsMessageCallbackParams & > DtNewMessageCallbackList
Definition: externalCommsMessageTransporter.h:90
DtCallbackList< const DtExternalCommsReadyToSendData & > DtReadyToSendCallbackList
Definition: externalCommsMessageTransporter.h:91
std::map< DtSplitMessageKey, std::map< unsigned, SplitContentEntry > > SplitContentMap
Definition: externalCommsMessageTransporter.h:63
DtEntityIdentifier myReceiver
Definition: externalCommsMessageTransporter.h:36
DtEntityIdentifier mySender
Definition: externalCommsMessageTransporter.h:44
std::pair< makVrfEvents::DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr > DtExternalCommsMessageCallbackParams
Definition: externalCommsMessageTransporter.h:89
DtEntityIdentifier myEntityId
Definition: externalCommsMessageTransporter.h:50
DtU32 myRadioIndex
Definition: externalCommsMessageTransporter.h:51
bool myEnabled
Definition: externalCommsMessageTransporter.h:187
DtU32 myTransmitterRadioIndex
Definition: externalCommsMessageTransporter.h:37
DtU32 myMessageId
Definition: externalCommsMessageTransporter.h:34
DtU32 myMessageId
Definition: externalCommsMessageTransporter.h:43
char * pBuffer
Definition: externalCommsMessageTransporter.h:62
Class: DtSplitMessageKey.
Definition: splitMessageKey.h:23
DtNewMessageCallbackList myNewMessageCallbackList
Definition: externalCommsMessageTransporter.h:190
bool enabled() const
accessor/mutator for enabled state
Definition: externalCommsMessageTransporter.h:198
Definition: externalCommsMessageTransporter.h:48
Definition: event.h:13
SplitContentMap mySplitContentMap
Definition: externalCommsMessageTransporter.h:193
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:51
DtClock myClock
Definition: externalCommsMessageTransporter.h:195
Definition: externalCommsMessageTransporter.h:41
DtProcessMessageCallbackList myProcessMessageCallbackList
Definition: externalCommsMessageTransporter.h:189
double myDelay
Definition: externalCommsMessageTransporter.h:38
This class helps DtVrfMessageInterface handle big messages. DtSplitContentTimer is a simple class tha...
Definition: splitContentTimer.h:22
DtCallbackList< const DtExternalCommsProcessMessageData & > DtProcessMessageCallbackList
Definition: externalCommsMessageTransporter.h:87
const DtUserProtocol DtQualnetSignalUserProtocol
The User Protocol value used when sending VRF Object Messages though signal interactions by the DtExt...
Definition: externalCommsMessageTransporter.h:21
DtSignalMessageHeader.
Definition: signalMessageHeader.h:47
DtReadyToSendCallbackList myReadyToSendCallbackList
Definition: externalCommsMessageTransporter.h:191
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Definition: externalCommsSignalEvent.h:12
Definition: externalCommsMessageTransporter.h:62
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: externalCommsMessageTransporter.h:32
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfCommunicationManagerDefines.h:26
This class manages encoding and decoding of messages to and from an external comms effects server...
Definition: externalCommsMessageTransporter.h:58
class DtDataEvent
Definition: dataEvent.h:18
const DtUserProtocol DtExtendedContentSignalUserProtocol
Definition: externalCommsMessageTransporter.h:22
DtSplitContentTimer mySplitContentTimer
Definition: externalCommsMessageTransporter.h:194

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)