MAK RTIspy API Documentation for HLA Evolved
saveStatusMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2004 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: saveStatusMsg.h,v $ $Revision: 1.6 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtSaveStatusMsg_H_
13 #define DtSaveStatusMsg_H_
14 
15 #include "rtiMsg.h"
16 #include "netFederateStatusMsg.h"
17 #include <vlutil/vlString.h>
18 
20 {
25 };
26 
27 #ifdef DtIFSPEC1516
28 
29 class DtConnectionMgr;
30 class DtSaveStatusMsg;
31 typedef void (*DtSaveStatusCb)(const DtSaveStatusMsg& inter, void* usr);
32 
33 class DT_DLL_LRC DtSaveStatusMsg : public DtRtiMsg
34 {
35 public:
36 
38  DtSaveStatusMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
39 
41  DtSaveStatusMsg(DtFederateHandle federate,
42  rti1516::FederateHandleSaveStatusPairVector const & saveStatusList,
43  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
44 
46  DtSaveStatusMsg(const DtNetSaveStatusMsg* netRep,
47  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
48 
50  virtual ~DtSaveStatusMsg();
51 
53  virtual DtRtiMsg* clone(bool copy = true) const;
54 
56  virtual void set(DtFederateHandle federate,
57  rti1516::FederateHandleSaveStatusPairVector const & saveStatusList);
58 
60  virtual void setRequestingFederate(DtFederateHandle federate);
61  virtual DtFederateHandle requestingFederate() const;
62 
64  virtual void setSaveStatus(
65  rti1516::FederateHandleSaveStatusPairVector const & saveStatusList,
66  bool checkBufferSize=true);
67  virtual rti1516::FederateHandleSaveStatusPairVector const & saveStatus() const;
68 
70  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
71 
72 public:
73 
75  static DtRtiMsg* create(const DtNetMsgHeader* initial,
76  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
77 
78  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
79 
81  static void addCallback(DtConnectionMgr* conn,
82  DtSaveStatusCb cb, void* usr, bool isMomCallback=false);
83  static void removeCallback(DtConnectionMgr* conn,
84  DtSaveStatusCb cb, void* usr, bool isMomCallback=false);
85 
87  static const char* statusToString(DtSaveStatus status);
88 
89 protected:
90 
92  virtual DtNetSaveStatusMsg* netSaveStatusMsg();
93  virtual const DtNetSaveStatusMsg* netSaveStatusMsg() const;
94 
96  virtual DtNetFederateStatus* netStatusList();
97  virtual const DtNetFederateStatus* netStatusList() const;
98 
100  virtual void setNumberFederates(int count);
101  virtual int numberFederates() const;
102 
105 
107  virtual int minSize(
108  rti1516::FederateHandleSaveStatusPairVector const * saveStatusList=NULL) const;
109 
111  virtual void setSizeOfStatus(unsigned long size);
112 
114  virtual unsigned long sizeNeededForStatus(
115  const rti1516::FederateHandleSaveStatusPairVector& status) const;
116 
118  virtual DtSaveStatusMsg* self() const;
119 
120 protected:
121 
123  int myStatusFieldLength;
124 };
125 
126 
127 inline DtSaveStatusMsg* DtSaveStatusMsg::self() const
128 {
129  return (DtSaveStatusMsg*) this;
130 }
131 
132 #elif defined(DtIFSPEC1516E)
133 
134 class DtConnectionMgr;
135 class DtSaveStatusMsg;
136 typedef void (*DtSaveStatusCb)(const DtSaveStatusMsg& inter, void* usr);
137 
138 class DT_DLL_LRC DtSaveStatusMsg : public DtRtiMsg
139 {
140 public:
141 
143  DtSaveStatusMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
144 
146  DtSaveStatusMsg(DtFederateHandle federate,
147  rti1516e::FederateHandleSaveStatusPairVector const & saveStatusList,
148  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
149 
151  DtSaveStatusMsg(const DtNetSaveStatusMsg* netRep,
152  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
153 
155  virtual ~DtSaveStatusMsg();
156 
158  virtual DtRtiMsg* clone(bool copy = true) const;
159 
161  virtual void set(DtFederateHandle federate,
162  rti1516e::FederateHandleSaveStatusPairVector const & saveStatusList);
163 
165  virtual void setRequestingFederate(DtFederateHandle federate);
166  virtual DtFederateHandle requestingFederate() const;
167 
169  virtual void setSaveStatus(
170  rti1516e::FederateHandleSaveStatusPairVector const & saveStatusList,
171  bool checkBufferSize=true);
172  virtual rti1516e::FederateHandleSaveStatusPairVector const & saveStatus() const;
173 
175  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
176 
177 public:
178 
180  static DtRtiMsg* create(const DtNetMsgHeader* initial,
181  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
182 
183  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
184 
186  static void addCallback(DtConnectionMgr* conn,
187  DtSaveStatusCb cb, void* usr, bool isMomCallback=false);
188  static void removeCallback(DtConnectionMgr* conn,
189  DtSaveStatusCb cb, void* usr, bool isMomCallback=false);
190 
192  static const char* statusToString(DtSaveStatus status);
193 
194 protected:
195 
197  virtual DtNetSaveStatusMsg* netSaveStatusMsg();
198  virtual const DtNetSaveStatusMsg* netSaveStatusMsg() const;
199 
201  virtual DtNetFederateStatus* netStatusList();
202  virtual const DtNetFederateStatus* netStatusList() const;
203 
205  virtual void setNumberFederates(int count);
206  virtual int numberFederates() const;
207 
210 
212  virtual int minSize(
213  rti1516e::FederateHandleSaveStatusPairVector const * saveStatusList=NULL) const;
214 
216  virtual void setSizeOfStatus(unsigned long size);
217 
219  virtual unsigned long sizeNeededForStatus(
221 
223  virtual DtSaveStatusMsg* self() const;
224 
225 protected:
226 
228  int myStatusFieldLength;
229 };
230 
231 
232 inline DtSaveStatusMsg* DtSaveStatusMsg::self() const
233 {
234  return (DtSaveStatusMsg*) this;
235 }
236 
237 #endif
238 #endif
239 

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)