MAK RTIspy API Documentation for HLA 1.3
reportFederationsMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2010 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: joinMsg.h,v $ $Revision: 1.37 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtReportFederationsMsg_H_
00013 #define DtReportFederationsMsg_H_
00014 
00015 #include "rtiMsg.h"
00016 #include "netRtiMsgHdr.h"
00017 #include "netReportFederationsMsg.h"
00018 #include <vlutil/vlString.h>
00019 #include <vlutil/vlUtil.h>
00020 #include <vlutil/vlInetAddr.h>
00021 
00022 class DtConnectionMgr;
00023 class DtReportFederationsMsg;
00024 typedef void (*DtReportFederationsCb)(const DtReportFederationsMsg& inter, void* usr);
00025 
00026 class DT_DLL_LRC DtReportFederationsMsg : public DtRtiMsg
00027 {
00028 public:
00029 
00031    DtReportFederationsMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00032 
00033    DtReportFederationsMsg(unsigned long ID,
00034       const std::vector<MAKRti::DtString>& federationNames,
00035       const std::vector<MAKRti::DtString>& timeImplNames,
00036       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00037 
00039    DtReportFederationsMsg(const DtNetReportFederationsMsg* netRepMsg,
00040       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041 
00043    virtual ~DtReportFederationsMsg();
00044 
00046    virtual DtRtiMsg* clone(bool copy = true) const; 
00047 
00049    virtual void set(unsigned long ID,
00050       const std::vector<MAKRti::DtString>& federationNames,
00051       const std::vector<MAKRti::DtString>& timeImplNames);
00052 
00054    void setDestinationID( unsigned long ID );
00055    const unsigned long destinationID() const;
00056 
00058    virtual void setFederationNames( const std::vector<MAKRti::DtString> & names);
00059    virtual void getFederationNames(std::vector<MAKRti::DtString>& names) const;
00060 
00062    virtual void setTimeImplementationNames( const std::vector<MAKRti::DtString> & names);
00063    virtual void getTimeImplementationNames(std::vector<MAKRti::DtString>& names) const;
00064 
00066    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00067 
00068 public:
00069 
00071    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00072       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00073 
00075    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00076 
00078    static void addCallback(DtConnectionMgr* conn,
00079       DtReportFederationsCb cb, void* usr);
00080    static void removeCallback(DtConnectionMgr* conn,
00081       DtReportFederationsCb cb, void* usr);
00082 
00083 protected:
00084 
00086    virtual DtNetReportFederationsMsg* netReportFederationsMsg();
00087    virtual const DtNetReportFederationsMsg* netReportFederationsMsg() const;
00088 
00090    virtual DtRtiMsgKind internalDtRtiMsgKind();
00091 
00093    virtual int minSize() const;
00094 
00098    virtual int setMinSizes( 
00099       const std::vector<MAKRti::DtString>& federationNames,
00100       const std::vector<MAKRti::DtString>& timeImplNames);
00101 
00103    virtual void setFederationNamesSize( unsigned long size );
00104    virtual unsigned long federationNamesSize() const;
00105 
00107    virtual void setTimeImplementationNamesSize( unsigned long size );
00108    virtual unsigned long timeImplementationNamesSize() const;
00109 
00111    virtual const char* federationNamesPtr() const;
00112    virtual const char* timeImplementationNamesPtr() const;
00113    
00114    //non-const versions
00115    virtual char* federationNamesPtr();
00116    virtual char* timeImplementationNamesPtr();
00117 
00119    virtual DtReportFederationsMsg* self() const;
00120 
00121 };
00122 
00123 
00124 inline DtReportFederationsMsg* DtReportFederationsMsg::self() const
00125 {
00126    return const_cast<DtReportFederationsMsg*>( this );
00127 }
00128 
00129 #endif
00130 

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)