MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
resignMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: resignMsg.h,v $ $Revision: 1.20 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtResignMsg_H_
13 #define DtResignMsg_H_
14 
15 #include "rtiMsg.h"
16 #include "netResignMsg.h"
17 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
18 #include "RTI/Enums.h"
19 #endif
20 #include <vlutil/vlFedTarget.h>
21 
22 class DtConnectionMgr;
23 class DtResignMsg;
24 typedef void (*DtResignCb)(const DtResignMsg& inter, void* usr);
25 
27 {
28  DtNormalResign, // Through API call
29  DtNotHeartbeatedResign, // Heartbeat msg not received in time
30  DtLostConnectionResign, // Lost reliable connection
31  DtForwarderQueueFullResign, // Forwarder queue for federate filled
32  DtUserForcedResign, // Forced through GUI or command line
33  DtNormalResignExpectingResponse // Through API call but expects a response from RTIEXEC
34 };
35 
37 {
38 public:
39 
41  DtResignMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
42 
43  DtResignMsg(const char* fedExName,
44  DtFederateHandle fedHandle,
45  DtResignAction action,
46  DtResignReason reason,
47  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
48 
50  DtResignMsg(const DtNetResignMsg* netRepMsg,
51  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
52 
54  virtual ~DtResignMsg();
55 
57  virtual DtRtiMsg* clone(bool copy = true) const;
58 
60  virtual void set(const char* fedExName,
61  DtFederateHandle fedHandle,
62  DtResignAction action,
63  DtResignReason reason);
64 
66  virtual void setResignAction(DtResignAction action);
67  virtual DtResignAction resignAction() const;
68 
70  virtual void setResignReason(DtResignReason reason);
71  virtual DtResignReason resignReason() const;
72 
74 #ifdef DtIFSPEC1516
75  virtual void setTimeStamp(rti1516::LogicalTime const & time);
76  virtual rti1516::LogicalTime const * timeStamp(
77  DtLogicalTimeFactory* logicalTimeFactory) const;
78 #elif defined(DtIFSPEC1516E)
79  virtual void setTimeStamp(rti1516e::LogicalTime const & time);
80  virtual rti1516e::LogicalTime const * timeStamp(
81  DtLogicalTimeFactory* logicalTimeFactory) const;
82 #else
83  virtual void setTimeStamp(RTI::FedTime const & time);
84  virtual RTI::FedTime const * timeStamp(
85  DtLogicalTimeFactory* logicalTimeFactory) const;
86 #endif
87 
89  virtual void setTimeStampSize(int size);
90  virtual int timeStampSize() const;
91 
93  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
94 
95 public:
96 
98  static DtRtiMsg* create(const DtNetMsgHeader* initial,
99  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
100 
102  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
103 
105  static void addCallback(DtConnectionMgr* conn,
106  DtResignCb cb, void* usr, bool isMomCallback=false);
107  static void removeCallback(DtConnectionMgr* conn,
108  DtResignCb cb, void* usr, bool isMomCallback=false);
109 
110 protected:
111 
113  virtual DtNetResignMsg* netResignMsg();
114  virtual const DtNetResignMsg* netResignMsg() const;
115 
118 
120  virtual int minSize() const;
121 
123  virtual int timeStampFieldSize() const;
124 
126  virtual char* timeStampPtr();
127 
129  virtual DtResignMsg* self() const;
130 
131 protected:
133 #ifdef DtIFSPEC1516
134  rti1516::LogicalTime* myTimeStamp;
135 #elif defined(DtIFSPEC1516E)
136  rti1516e::LogicalTime* myTimeStamp;
137 #else
138  RTI::FedTime* myTimeStamp;
139 #endif
140 };
141 
142 
144 {
145  return const_cast<DtResignMsg*>( this );
146 }
147 
148 
149 #endif
150 

Document ID: Generated on Fri Sep 27 00:57:56 EDT 2019 from SVN revision 201708
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)