VR-Forces 4.8 Class Documentation
 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>
11 #include <vl/globalObjectDesignator.h>
12 #include <vl/dataInteraction.h>
15 #include <vl/signalInteraction.h>
18 #include <vlutil/vlTime.h>
19 
20 class DtEventManager;
21 class DtEvent;
22 class DtSplitMessageKey;
24 
26 {
27  DtU32 myMessageId;
28  DtEntityIdentifier mySender;
29  DtEntityIdentifier myReceiver;
31  double myDelay;
32 };
33 
35 {
36  DtU32 myMessageId;
37  DtEntityIdentifier mySender;
39 };
40 
42 {
43  DtEntityIdentifier myEntityId;
44  DtU32 myRadioIndex;
45 };
46 
48 {
49  DtU32 messageId;
52  DtU32 radioIndex;
53  DtU32 messageSize;
54  DtEntityIdentifier receiverID;
55  float timeout;
56  double sampleRate;
57 };
58 
62 {
63 public:
64 
65  typedef struct _tSplitContentEntry{unsigned nSize; char* pBuffer;} SplitContentEntry;
66 
67  typedef std::map<DtSplitMessageKey, std::map<unsigned, SplitContentEntry> > SplitContentMap;
68 
69 private:
71 
76 
77 protected:
81  virtual bool init();
82 
83 public:
87 
89 
90 public:
93  typedef std::pair<DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr> DtExternalCommsMessageCallbackParams;
96 
100 
101  virtual void addProcessMessageCallback(DtProcessMessageCallbackList::DtCallbackFunctionType fcn,
102  void* usr);
103  virtual void removeProcessMessageCallback(DtProcessMessageCallbackList::DtCallbackFunctionType fcn,
104  void* usr);
106 
110 
111  virtual void addTimeoutCallback(DtTimeoutCallbackList::DtCallbackFunctionType fcn,
112  void* usr);
113  virtual void removeTimeoutCallback(DtTimeoutCallbackList::DtCallbackFunctionType fcn,
114  void* usr);
116 
120 
121  virtual void addReadyToSendCallback(DtReadyToSendCallbackList::DtCallbackFunctionType fcn,
122  void* usr);
123  virtual void removeReadyToSendCallback(DtReadyToSendCallbackList::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 
136  virtual void clearSplitContent();
137 
140  bool enabled() const;
141  virtual void setEnabled(bool bEnabled);
144  virtual bool processSplitContent(const DtExternalCommsMessageParams& params,
145  const DtSignalMessageHeader& msgHdr,
146  const char *pContent);
147 
149  virtual void processSplitContentTimeout(const DtSplitMessageKey& key);
150 
152  virtual bool processVrfObjectMessageReceived(const DtExternalCommsMessageParams& params,
153  const char *pVrfObjectMessageBuffer);
154 
156  virtual bool reassembleVrfObjectMessage(const DtExternalCommsMessageParams& params,
157  const DtSignalMessageHeader& msgHdr);
158 
160  virtual void removeSplitContent(const DtSplitMessageKey& key);
161 
163  virtual void sendInteraction(const DtExternalCommsMessageParams& params,
164  const DtSignalMessageHeader& msgHdr,
165  const char* pContent);
166 
169  virtual void sendMessage(const DtExternalCommsMessageParams& params, DtVrfObjectMessage* message);
170 
171  static void splitContentTimeoutCbk(const DtSplitMessageKey& key, void *pUsr);
172 
173 protected:
174 
175  virtual DtString entityIdToString(const DtEntityIdentifier& id) const;
176 
177  virtual void dataInteractionCallback(const DtEvent&);
178 
181  virtual void processDataInteraction(DtDataInteraction* interaction);
182 
183  virtual void processExternalCommsProcessMessage(DtDataInteraction* processMessageInteraction);
184 
185  virtual void processExternalCommsTimout(DtDataInteraction* timeoutInteraction);
186 
187  virtual void processExternalCommsReadyToSend(DtDataInteraction* readyToSendInteraction);
188 
189  virtual void signalInteractionCallback(const DtEvent&);
190  virtual void processSignalInteraction(DtSignalInteraction* inter);
191 
193  virtual void sendSignalInteraction(DtSignalInteraction& signalInteraction);
194 
195 public:
196 
197 protected:
198  bool myEnabled;
207 };
208 
210 {
211  return myEnabled;
212 }
DtEventManager * myEventManager
Definition: externalCommsMessageTransporter.h:199
DtCallbackList< const DtExternalCommsTimeoutData & > DtTimeoutCallbackList
Definition: externalCommsMessageTransporter.h:92
DtTimeoutCallbackList myTimeoutCallbackList
Definition: externalCommsMessageTransporter.h:201
DtEntityIdentifier mySender
Definition: externalCommsMessageTransporter.h:28
DtU32 myTransmitterRadioIndex
Definition: externalCommsMessageTransporter.h:38
DtCallbackList< const DtExternalCommsMessageCallbackParams & > DtNewMessageCallbackList
Definition: externalCommsMessageTransporter.h:94
DtCallbackList< const DtExternalCommsReadyToSendData & > DtReadyToSendCallbackList
Definition: externalCommsMessageTransporter.h:95
std::map< DtSplitMessageKey, std::map< unsigned, SplitContentEntry > > SplitContentMap
Definition: externalCommsMessageTransporter.h:67
DtEntityIdentifier myReceiver
Definition: externalCommsMessageTransporter.h:29
DtEntityIdentifier mySender
Definition: externalCommsMessageTransporter.h:37
DtEntityIdentifier myEntityId
Definition: externalCommsMessageTransporter.h:43
DtU32 myRadioIndex
Definition: externalCommsMessageTransporter.h:44
bool myEnabled
Definition: externalCommsMessageTransporter.h:198
DtU32 myTransmitterRadioIndex
Definition: externalCommsMessageTransporter.h:30
DtU32 myMessageId
Definition: externalCommsMessageTransporter.h:27
DtU32 myMessageId
Definition: externalCommsMessageTransporter.h:36
char * pBuffer
Definition: externalCommsMessageTransporter.h:65
Class: DtSplitContentTimer.
DtGlobalObjectDesignator transmitterDesignator
The designator of the Transmitter.
Definition: externalCommsMessageTransporter.h:51
Definition: events.h:47
Class: DtSplitMessageKey.
Definition: splitMessageKey.h:23
DtNewMessageCallbackList myNewMessageCallbackList
Definition: externalCommsMessageTransporter.h:202
bool enabled() const
accessor/mutator for enabled state
Definition: externalCommsMessageTransporter.h:209
Definition: externalCommsMessageTransporter.h:41
SplitContentMap mySplitContentMap
Definition: externalCommsMessageTransporter.h:204
Definition: eventManager.h:23
DtClock myClock
Definition: externalCommsMessageTransporter.h:206
Definition: externalCommsMessageTransporter.h:34
DtProcessMessageCallbackList myProcessMessageCallbackList
Definition: externalCommsMessageTransporter.h:200
double myDelay
Definition: externalCommsMessageTransporter.h:31
double sampleRate
Definition: externalCommsMessageTransporter.h:56
DtU32 messageId
Definition: externalCommsMessageTransporter.h:49
This class helps DtVrfMessageInterface handle big messages.
Definition: splitContentTimer.h:33
DtCallbackList< const DtExternalCommsProcessMessageData & > DtProcessMessageCallbackList
Definition: externalCommsMessageTransporter.h:91
DtSignalMessageHeader.
Definition: signalMessageHeader.h:47
DtReadyToSendCallbackList myReadyToSendCallbackList
Definition: externalCommsMessageTransporter.h:203
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
Definition: externalCommsMessageTransporter.h:47
Definition: externalCommsMessageTransporter.h:65
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtU32 radioIndex
Definition: externalCommsMessageTransporter.h:52
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build.
Definition: vrfMsgTransportDefines.h:28
DtU32 messageSize
Definition: externalCommsMessageTransporter.h:53
std::pair< DtExternalCommsMessageParams, DtVrfObjectMessageConstPtr > DtExternalCommsMessageCallbackParams
Definition: externalCommsMessageTransporter.h:93
Definition: externalCommsMessageTransporter.h:25
This class manages encoding and decoding of messages to and from an external comms effects server...
Definition: externalCommsMessageTransporter.h:61
DtSplitContentTimer mySplitContentTimer
Definition: externalCommsMessageTransporter.h:205
float timeout
Definition: externalCommsMessageTransporter.h:55
DtEntityIdentifier receiverID
Definition: externalCommsMessageTransporter.h:54

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)