VR-Forces 4.7 Class Documentation
 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/vlMachineTypes.h>
11 
12 #include <vlutil/vlUtil.h>
13 #include <vl/dataInteraction.h>
14 #include <vl/interClassDesc.h>
15 #include <vl/rtiCompatibility.h>
16 
17 class DtVrfTDLMessage;
19 
20 typedef void (*DtVrfTDLMessageCallbackFcn)(DtVrfTDLMessage*, void* usr);
21 
25 {
26 public:
27 
29  DtVrfTDLMessageInterface(DtExerciseConn* exConn,
30  bool useDefaultInterfaceFactory = true);
31 
33  virtual ~DtVrfTDLMessageInterface();
34 
36  virtual bool init();
37 
39  virtual bool createAndDeliverMessage(
40  const DtSimulationAddress& recipient,
41  const DtVrfTDLMessage & content,
42  bool overrideTimestampOrder = true);
43 
46  virtual const DtSimulationAddress& messageAddress() const;
47 
49  virtual bool sendMessage(DtVrfTDLMessage& message);
50 
52  virtual DtExerciseConn* exerciseConn();
53 
55  virtual void clearExerciseConn();
56 
58  virtual void setSequence(DtU32 num);
59  virtual DtU32 sequence() const;
60 
62  virtual void addVrfTDLMessageCallback(DtVrfTDLMessageCallbackFcn fcn, void* usr);
63  virtual void removeVrfTDLMessageCallback(DtVrfTDLMessageCallbackFcn fcn, void* usr);
64 
65 #ifdef DtHLA
66 
67  virtual void setTransportTypeReliable(int contentType);
68 
73  virtual void setTransportTypeBestEffort(int contentType);
74 
76  virtual void updateTransportTypeForMsg(const DtVrfTDLMessage& message);
77 
78  static char* dataInteractionChooser(
79  DtExerciseConn* exConn, const DtInteraction& inter);
80 #endif
81 
84  virtual bool receiveMessage(DtVrfTDLMessage* content);
85 
87  virtual DtVrfTDLMessageFactory* factory() const;
88  virtual void setFactory(DtVrfTDLMessageFactory* fact);
89 
90 protected:
91  virtual bool setContentForNet(
92  DtDataInteraction* dataInter, DtVrfTDLMessage& content) const;
93 
94  static void netMessageCallback(DtDataInteraction* dataInter,
95  void * usr);
96 
98  virtual void receiveMessage(DtDataInteraction* dataInter);
99 
100  virtual bool matchPattern(const DtSimulationAddress& address,
101  const DtSimulationAddress& pattern) const;
102 
104  virtual bool getContentFromNet(DtDataInteraction* dataInter,
105  DtVrfTDLMessage*& content) const;
106 
107  virtual bool getContentFromNet(unsigned nBufferSize,
108  const char* pContentBuffer,
109  DtVrfTDLMessage*& content) const;
110 
112  virtual void invokeCallbacks(DtVrfTDLMessage*);
113 
114 private:
115 
117 
118  DtVrfTDLMessageInterface& operator=(
119  const DtVrfTDLMessageInterface& orig);
120 
122 
123 protected:
124  DtExerciseConn* myExerciseConnection;
130 
131  typedef std::vector<std::pair<DtVrfTDLMessageCallbackFcn, void*> > CallbackData;
133 
135 
136 #ifdef DtHLA
137 
139 #endif
140 };
141 
143 {
144  return mySequenceNumber;
145 }
146 
148 {
150 }
151 
153 {
154  return myExerciseConnection;
155 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)