MAK RTIspy API Documentation for HLA Evolved
savRespMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: savRespMsg.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtSaveResponseMsg_H_
00013 #define DtSaveResponseMsg_H_
00014 
00015 #include "rtiMsg.h"
00016 #include "netSavRespMsg.h"
00017 
00018 class DtConnectionMgr;
00019 class DtSaveResponseMsg;
00020 typedef void (*DtSaveResponseCb)(const DtSaveResponseMsg& inter, void* usr);
00021 
00022 enum DtSaveResponseFlag
00023 {
00024    DtSRSaveInProgress,
00025    DtSRSaveAccepted,
00026    DtSRSaveWaiting
00027 };
00028 
00029 class DT_DLL_LRC DtSaveResponseMsg : public DtRtiMsg
00030 {
00031 public:
00032 
00034    DtSaveResponseMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00035 
00036    DtSaveResponseMsg(DtFederateHandle requestingFederateVal,
00037       unsigned short requestIDValue,
00038       const char* labelVal,
00039       DtSaveResponseFlag flag,
00040       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041 
00043    DtSaveResponseMsg(const DtNetSaveResponseMsg* netRepMsg,
00044       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00045 
00047    virtual ~DtSaveResponseMsg();
00048 
00050    virtual DtRtiMsg* clone(bool copy = true) const; 
00051 
00053    virtual void set(DtFederateHandle requestingFederateVal,
00054       unsigned short requestIDValue, const char* theLabel,
00055       DtSaveResponseFlag flag);
00056 
00058    void setRequestingFederate(DtFederateHandle requestingFederateVal);
00059    DtFederateHandle requestingFederate() const;
00060 
00062    virtual void setRequestID(unsigned short requestIDValue);
00063    virtual unsigned short requestID() const;
00064 
00066    virtual void setLabel(const char* label);
00067    virtual const char* label() const;
00068 
00070    void setResponseFlag(DtSaveResponseFlag flag);
00071    DtSaveResponseFlag responseFlag() const;
00072 
00074    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00075 
00076 public:
00077 
00079    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00080       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00081 
00083    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00084 
00086    static void addCallback(DtConnectionMgr* conn,
00087       DtSaveResponseCb cb, void* usr);
00088    static void removeCallback(DtConnectionMgr* conn,
00089       DtSaveResponseCb cb, void* usr);
00090 
00091 protected:
00092 
00094    virtual DtNetSaveResponseMsg* netSaveResponseMsg();
00095    virtual const DtNetSaveResponseMsg* netSaveResponseMsg() const;
00096 
00098    virtual DtRtiMsgKind internalDtRtiMsgKind();
00099 
00101    virtual char* labelPtr();
00102 
00104    virtual int labelFieldSize() const;
00105 
00107    virtual void setLabelSize(int size);
00108    virtual int labelSize() const;
00109 
00111    virtual int minSize(const char* theLabel=NULL) const;
00112 
00114    virtual DtSaveResponseMsg* self() const;
00115 
00116 protected:
00117 
00118    char* myLabel;
00119 };
00120 
00121 
00122 inline DtSaveResponseMsg* DtSaveResponseMsg::self() const
00123 {
00124    return const_cast<DtSaveResponseMsg*>( this );
00125 }
00126 
00127 #endif
00128 

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)