VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfTDLMessageInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 
10 #include <vlutil/vlUtil.h>
11 #include <vector>
12 #include <set>
13 
14 class DtVrfTDLMessage;
17 class DtSimulationAddress;
18 
19 namespace makVrfEvents
20 {
21  class DtEventManager;
22  class DtEvent;
23  class DtDataEvent;
24 }
25 
27 
28 typedef void (*DtVrfTDLMessageCallbackFcn)(DtVrfTDLMessage*, void* usr);
29 typedef DtVrfTDLMessageInterface* (*DtVrfTDLMessageInterfaceCreatorFcn)(DtCommunicationManager* exConn, bool useDefaultInterfaceFactory);
30 
38 {
39 public:
41  bool useDefaultInterfaceFactory = true);
42 
44  virtual ~DtVrfTDLMessageInterface();
45 
47  virtual bool init();
48 
50  virtual bool createAndDeliverMessage(
51  const DtSimulationAddress& recipient,
52  const DtVrfTDLMessage & content,
53  bool overrideTimestampOrder = true);
54 
57  virtual const DtSimulationAddress& messageAddress() const;
58 
60  virtual bool sendMessage(DtVrfTDLMessage& message);
61 
63  DtCommunicationManager* communicationManager() const;
64  virtual void setCommunicationManager(DtCommunicationManager*);
65 
67  virtual void setSequence(DtU32 num);
68  virtual DtU32 sequence() const;
69 
71  virtual void addVrfTDLMessageCallback(DtVrfTDLMessageCallbackFcn fcn, void* usr);
72  virtual void removeVrfTDLMessageCallback(DtVrfTDLMessageCallbackFcn fcn, void* usr);
73 
76  virtual bool receiveMessage(DtVrfTDLMessage* content);
77 
79  virtual DtVrfTDLMessageFactory* factory() const;
80  virtual void setFactory(DtVrfTDLMessageFactory* fact);
81 
83  virtual bool receiveMessage(const makVrfEvents::DtDataEvent* dataInter);
84 
87  static DtVrfTDLMessageInterface* create(DtCommunicationManager* exConn, bool useDefaultInterfaceFactory = true);
89  static DtVrfTDLMessageInterfaceCreatorFcn creator();
91 
92 protected:
93  virtual void removeConnections();
94  virtual void initializeConnections();
95 
96  virtual bool setContentForNet(
97  makVrfEvents::DtDataEvent* dataInter, DtVrfTDLMessage& content) const;
98 
99  virtual void netMessageCallback(const makVrfEvents::DtEvent&);
100 
101  virtual bool matchPattern(const DtSimulationAddress& address,
102  const DtSimulationAddress& pattern) const;
103 
105  virtual bool getContentFromNet(const makVrfEvents::DtDataEvent* dataInter,
106  DtVrfTDLMessage*& content) const;
107 
108  virtual bool getContentFromNet(unsigned nBufferSize,
109  const char* pContentBuffer,
110  DtVrfTDLMessage*& content) const;
111 
113  virtual void invokeCallbacks(DtVrfTDLMessage*);
114 
115 private:
116 
118 
119  DtVrfTDLMessageInterface& operator=(
120  const DtVrfTDLMessageInterface& orig);
121 
123 
124 protected:
130 
131  typedef std::vector<std::pair<DtVrfTDLMessageCallbackFcn, void*> > CallbackData;
133 
135 
136 #ifdef DtHLA
137  std::set<int> myContentTypesToSendReliable;
139 #endif
140 
143 };
144 
146 {
147  return mySequenceNumber;
148 }
149 
151 {
152  return myCommunicationManager;
153 }
DtCommunicationManager * communicationManager() const
Return the event manager.
Definition: vrfTDLMessageInterface.h:150
virtual DtU32 sequence() const
Definition: vrfTDLMessageInterface.h:145
The DtVrfTDLMessageInterface is a transporter for sending TDL messages as data interactions using a V...
Definition: vrfTDLMessageInterface.h:37
static DtVrfTDLMessageInterfaceCreatorFcn theCreatorFcn
Definition: vrfTDLMessageInterface.h:142
bool myUseReliableTransport
Definition: vrfTDLMessageInterface.h:127
CallbackData myCallbacks
Definition: vrfTDLMessageInterface.h:132
DtCommunicationManager * myCommunicationManager
Definition: vrfTDLMessageInterface.h:141
Definition: event.h:13
std::vector< std::pair< DtVrfTDLMessageCallbackFcn, void * > > CallbackData
Definition: vrfTDLMessageInterface.h:131
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:51
bool myCreatedInterfaceFactory
Definition: vrfTDLMessageInterface.h:129
Definition: vrfTDLMessage.h:54
DtU32 mySequenceNumber
Definition: vrfTDLMessageInterface.h:125
void(* DtVrfTDLMessageCallbackFcn)(DtVrfTDLMessage *, void *usr)
Definition: vrfTDLMessageInterface.h:28
DtVrfTDLMessageFactory * myFactory
Definition: vrfTDLMessageInterface.h:128
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfTDLMessageFactory is a map of creators by type for VRF TDL Messages.
Definition: vrfTDLMessageFactory.h:17
#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
class DtDataEvent
Definition: dataEvent.h:18
DtVrfTDLMessage * myVrfTDLMessageTranslator
Definition: vrfTDLMessageInterface.h:134
bool myAllowReliableDataInteractions
Definition: vrfTDLMessageInterface.h:126
DtVrfTDLMessageInterface *(* DtVrfTDLMessageInterfaceCreatorFcn)(DtCommunicationManager *exConn, bool useDefaultInterfaceFactory)
Definition: vrfTDLMessageInterface.h:29

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)