MAK RTIspy API Documentation for HLA Evolved
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 };
34 
36 {
37 public:
38 
40  DtResignMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
41 
42  DtResignMsg(const char* fedExName,
43  DtFederateHandle fedHandle,
44  DtResignAction action,
45  DtResignReason reason,
46  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
47 
49  DtResignMsg(const DtNetResignMsg* netRepMsg,
50  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
51 
53  virtual ~DtResignMsg();
54 
56  virtual DtRtiMsg* clone(bool copy = true) const;
57 
59  virtual void set(const char* fedExName,
60  DtFederateHandle fedHandle,
61  DtResignAction action,
62  DtResignReason reason);
63 
65  virtual void setResignAction(DtResignAction action);
66  virtual DtResignAction resignAction() const;
67 
69  virtual void setResignReason(DtResignReason reason);
70  virtual DtResignReason resignReason() const;
71 
73 #ifdef DtIFSPEC1516
74  virtual void setTimeStamp(rti1516::LogicalTime const & time);
75  virtual rti1516::LogicalTime const * timeStamp(
76  DtLogicalTimeFactory* logicalTimeFactory) const;
77 #elif defined(DtIFSPEC1516E)
78  virtual void setTimeStamp(rti1516e::LogicalTime const & time);
79  virtual rti1516e::LogicalTime const * timeStamp(
80  DtLogicalTimeFactory* logicalTimeFactory) const;
81 #else
82  virtual void setTimeStamp(RTI::FedTime const & time);
83  virtual RTI::FedTime const * timeStamp(
84  DtLogicalTimeFactory* logicalTimeFactory) const;
85 #endif
86 
88  virtual void setTimeStampSize(int size);
89  virtual int timeStampSize() const;
90 
92  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
93 
94 public:
95 
97  static DtRtiMsg* create(const DtNetMsgHeader* initial,
98  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
99 
101  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
102 
104  static void addCallback(DtConnectionMgr* conn,
105  DtResignCb cb, void* usr, bool isMomCallback=false);
106  static void removeCallback(DtConnectionMgr* conn,
107  DtResignCb cb, void* usr, bool isMomCallback=false);
108 
109 protected:
110 
112  virtual DtNetResignMsg* netResignMsg();
113  virtual const DtNetResignMsg* netResignMsg() const;
114 
117 
119  virtual int minSize() const;
120 
122  virtual int timeStampFieldSize() const;
123 
125  virtual char* timeStampPtr();
126 
128  virtual DtResignMsg* self() const;
129 
130 protected:
132 #ifdef DtIFSPEC1516
133  rti1516::LogicalTime* myTimeStamp;
134 #elif defined(DtIFSPEC1516E)
135  rti1516e::LogicalTime* myTimeStamp;
136 #else
138 #endif
139 };
140 
141 
143 {
144  return const_cast<DtResignMsg*>( this );
145 }
146 
147 
148 #endif
149 

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)