MAK RTIspy API Documentation for HLA 1516
restoreStatusMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2004 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: restoreStatusMsg.h,v $ $Revision: 1.6 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtRestoreStatusMsg_H_
00013 #define DtRestoreStatusMsg_H_
00014 
00015 #include "rtiMsg.h"
00016 #include "netFederateStatusMsg.h"
00017 #include <vlutil/vlString.h>
00018 
00019 enum DtRestoreStatus
00020 {
00021    DtNoRestoreInProgress,
00022    DtFederateRestoreRequestPending,
00023    DtWaitingForRestoreToBegin,
00024    DtPreparedToRestore,
00025    DtRestoring,
00026    DtWaitingForFederationToRestore
00027 };
00028 
00029 #ifdef DtIFSPEC1516
00030 
00031 class DtConnectionMgr;
00032 class DtRestoreStatusMsg;
00033 typedef void (*DtRestoreStatusCb)(const DtRestoreStatusMsg& inter, void* usr);
00034 
00035 class DT_DLL_LRC DtRestoreStatusMsg : public DtRtiMsg
00036 {
00037 public:
00038 
00040    DtRestoreStatusMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041 
00043    DtRestoreStatusMsg(DtFederateHandle federate,
00044       rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList,
00045       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00046 
00048    DtRestoreStatusMsg(const DtNetRestoreStatusMsg* netRep,
00049       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00050 
00052    virtual ~DtRestoreStatusMsg();
00053 
00055    virtual DtRtiMsg* clone(bool copy = true) const; 
00056 
00058    virtual void set(DtFederateHandle federate,
00059       rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList);
00060 
00062    virtual void setRequestingFederate(DtFederateHandle federate);
00063    virtual DtFederateHandle requestingFederate() const;
00064 
00066    virtual void setRestoreStatus(
00067       rti1516::FederateHandleRestoreStatusPairVector const & restoreStatusList,
00068       bool checkBufferSize=true);
00069    virtual rti1516::FederateHandleRestoreStatusPairVector const & restoreStatus() const;
00070 
00072    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00073 
00074 public:
00075 
00077    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00078       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00079 
00080    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00081 
00083    static void addCallback(DtConnectionMgr* conn,
00084       DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
00085    static void removeCallback(DtConnectionMgr* conn,
00086       DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
00087 
00089    static const char* statusToString(DtRestoreStatus status);
00090 
00091 protected:
00092 
00094    virtual DtNetRestoreStatusMsg* netRestoreStatusMsg();
00095    virtual const DtNetRestoreStatusMsg* netRestoreStatusMsg() const;
00096 
00098    virtual DtNetFederateStatus* netStatusList();
00099    virtual const DtNetFederateStatus* netStatusList() const;
00100 
00102    virtual void setNumberFederates(int count);
00103    virtual int numberFederates() const;
00104 
00106    virtual DtRtiMsgKind internalDtRtiMsgKind();
00107 
00109    virtual int minSize(
00110       rti1516::FederateHandleRestoreStatusPairVector const * restoreStatusList=NULL) const;
00111 
00113    virtual void setSizeOfStatus(unsigned long size);
00114    
00116    virtual unsigned long sizeNeededForStatus(
00117       const rti1516::FederateHandleRestoreStatusPairVector& status) const;
00118 
00120    virtual DtRestoreStatusMsg* self() const;
00121 
00122 protected:
00123 
00124    rti1516::FederateHandleRestoreStatusPairVector* myFederateStatus;
00125    int myStatusFieldLength;
00126 };
00127 
00128 
00129 inline DtRestoreStatusMsg* DtRestoreStatusMsg::self() const
00130 {
00131    return (DtRestoreStatusMsg*) this;
00132 }
00133 
00134 #elif defined(DtIFSPEC1516E)
00135 
00136 class DtConnectionMgr;
00137 class DtRestoreStatusMsg;
00138 typedef void (*DtRestoreStatusCb)(const DtRestoreStatusMsg& inter, void* usr);
00139 
00140 class DT_DLL_LRC DtRestoreStatusMsg : public DtRtiMsg
00141 {
00142 public:
00143 
00145     DtRestoreStatusMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00146 
00148     DtRestoreStatusMsg(DtFederateHandle federate,
00149         rti1516e::FederateRestoreStatusVector const & restoreStatusList,
00150         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00151 
00153     DtRestoreStatusMsg(const DtNetRestoreStatusMsg* netRep,
00154         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00155 
00157     virtual ~DtRestoreStatusMsg();
00158 
00160     virtual DtRtiMsg* clone(bool copy = true) const; 
00161 
00163     virtual void set(DtFederateHandle federate,
00164         rti1516e::FederateRestoreStatusVector const & restoreStatusList);
00165 
00167     virtual void setRequestingFederate(DtFederateHandle federate);
00168     virtual DtFederateHandle requestingFederate() const;
00169 
00171     virtual void setRestoreStatus(
00172         rti1516e::FederateRestoreStatusVector const & restoreStatusList,
00173         bool checkBufferSize=true);
00174     virtual rti1516e::FederateRestoreStatusVector const & restoreStatus() const;
00175 
00177     virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00178 
00179 public:
00180 
00182     static DtRtiMsg* create(const DtNetMsgHeader* initial,
00183         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00184 
00185     static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00186 
00188     static void addCallback(DtConnectionMgr* conn,
00189         DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
00190     static void removeCallback(DtConnectionMgr* conn,
00191         DtRestoreStatusCb cb, void* usr, bool isMomCallback=false);
00192 
00194     static const char* statusToString(DtRestoreStatus status);
00195 
00196 protected:
00197 
00199     virtual DtNetRestoreStatusMsg* netRestoreStatusMsg();
00200     virtual const DtNetRestoreStatusMsg* netRestoreStatusMsg() const;
00201 
00203     virtual DtNetFederateStatus* netStatusList();
00204     virtual const DtNetFederateStatus* netStatusList() const;
00205 
00207     virtual void setNumberFederates(int count);
00208     virtual int numberFederates() const;
00209 
00211     virtual DtRtiMsgKind internalDtRtiMsgKind();
00212 
00214     virtual int minSize(
00215         rti1516e::FederateRestoreStatusVector const * restoreStatusList=NULL) const;
00216 
00218     virtual void setSizeOfStatus(unsigned long size);
00219 
00221     virtual unsigned long sizeNeededForStatus(
00222         const rti1516e::FederateRestoreStatusVector& status) const;
00223 
00225     virtual DtRestoreStatusMsg* self() const;
00226 
00227 protected:
00228 
00229     rti1516e::FederateRestoreStatusVector* myFederateStatus;
00230     int myStatusFieldLength;
00231 };
00232 
00233 
00234 inline DtRestoreStatusMsg* DtRestoreStatusMsg::self() const
00235 {
00236     return (DtRestoreStatusMsg*) this;
00237 }
00238 
00239 #endif //! DtIFSPEC1516
00240 #endif //! DtRestoreStatusMsg_H_
00241 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)