MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
restoreStatusMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2004 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: restoreStatusMsg.h,v $ $Revision: 1.6 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #pragma once
13 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
14 
15 #include "rtiMsg.h"
16 #include "netFederateStatusMsg.h"
17 #include <vlutil/vlString.h>
18 
19 enum DtRestoreStatus
20 {
21  DtNoRestoreInProgress,
22  DtFederateRestoreRequestPending,
23  DtWaitingForRestoreToBegin,
24  DtPreparedToRestore,
25  DtRestoring,
26  DtWaitingForFederationToRestore
27 };
28 
29 class DtConnectionMgr;
30 class DtRestoreStatusMsg;
31 typedef void (*DtRestoreStatusCb)(const DtRestoreStatusMsg& inter, void* usr);
32 
33 class DT_DLL_LRC DtRestoreStatusMsg : public DtRtiMsg
34 {
35 public:
36 
38  DtRestoreStatusMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
39 
41  DtRestoreStatusMsg(DtFederateHandle federate,
42 #ifdef DtIFSPEC1516
43  rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList,
44 #else
45  rti1516e::FederateRestoreStatusVector const & restoreStatusList,
46 #endif
47  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
48 
50  DtRestoreStatusMsg(const DtNetRestoreStatusMsg* netRep,
51  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
52 
54  virtual ~DtRestoreStatusMsg();
55 
57  virtual DtRtiMsg* clone(bool copy = true) const;
58 
60  virtual void set(DtFederateHandle federate,
61 #ifdef DtIFSPEC1516
62  rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList
63 #else
64  rti1516e::FederateRestoreStatusVector const & restoreStatusList
65 #endif
66  );
67 
69  virtual void setRequestingFederate(DtFederateHandle federate);
70  virtual DtFederateHandle requestingFederate() const;
71 
73 #ifdef DtIFSPEC1516
74  virtual void setRestoreStatus(
75  rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList,
76  bool checkBufferSize=true);
77  virtual rti1516::FederateHandleRestoreStatusPairVector const & restoreStatus() const;
78 #else
79  virtual void setRestoreStatus(
80  rti1516e::FederateRestoreStatusVector const & restoreStatusList,
81  bool checkBufferSize=true);
82  virtual rti1516e::FederateRestoreStatusVector const & restoreStatus() const;
83 #endif
84 
86  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
87 
88 public:
89 
91  static DtRtiMsg* create(const DtNetMsgHeader* initial,
92  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
93 
94  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
95 
97  static void addCallback(DtConnectionMgr* conn,
98  DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
99  static void removeCallback(DtConnectionMgr* conn,
100  DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
101 
103  static const char* statusToString(DtRestoreStatus status);
104 
105 protected:
106 
108  virtual DtNetRestoreStatusMsg* netRestoreStatusMsg();
109  virtual const DtNetRestoreStatusMsg* netRestoreStatusMsg() const;
110 
112  virtual DtNetFederateStatus* netStatusList();
113  virtual const DtNetFederateStatus* netStatusList() const;
114 
116  virtual void setNumberFederates(int count);
117  virtual int numberFederates() const;
118 
121 
123 #ifdef DtIFSPEC1516
124  virtual int minSize(
125  rti1516::FederateHandleRestoreStatusPairVector const * restoreStatusList=NULL) const;
126 #else
127  virtual int minSize(
128  rti1516e::FederateRestoreStatusVector const * restoreStatusList=NULL) const;
129 #endif
130 
132  virtual void setSizeOfStatus(unsigned long size);
133 
135 #ifdef DtIFSPEC1516
136  virtual unsigned long sizeNeededForStatus(
137  rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList) const;
138 #else
139  virtual unsigned long sizeNeededForStatus(
140  rti1516e::FederateRestoreStatusVector const & restoreStatusList) const;
141 #endif
142 
144  virtual DtRestoreStatusMsg* self() const;
145 
146 protected:
147 
148 #ifdef DtIFSPEC1516
149  rti1516::FederateHandleRestoreStatusPairVector* myFederateStatus;
150 #else
151  rti1516e::FederateRestoreStatusVector* myFederateStatus;
152 #endif
153 
154  int myStatusFieldLength;
155 };
156 
157 
158 inline DtRestoreStatusMsg* DtRestoreStatusMsg::self() const
159 {
160  return (DtRestoreStatusMsg*) this;
161 }
162 
163 
164 #endif // defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
165 

Document ID: Generated on Mon Jul 9 10:30:41 EDT 2018 from SVN revision 190224
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)