MAK RTIspy API Documentation for HLA 1.3
objRegSetMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: objRegSetMsg.h,v $ $Revision: 1.15 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtObjRegSetMsg_H_
00013 #define DtObjRegSetMsg_H_
00014 #ifdef DDM
00015 
00016 #include "rtiMsg.h"
00017 #include "netObjRegMsg.h"
00018 #include <vlutil/vlInetAddr.h>
00019 
00020 
00021 class DtRegionSet;
00022 class DtConnectionMgr;
00023 class DtObjRegSetMsg;
00024 
00025 enum DtObjRegSetType
00026 {
00027    DtObjPubRegSet,
00028    DtObjSubRegSet
00029 };
00030 
00031 typedef void (*DtObjRegSetCb)(const DtObjRegSetMsg& msg, void* usr);
00032 
00033 class DT_DLL_LRC DtObjRegSetMsg : public DtRtiMsg
00034 {
00035 public:
00036 
00038    DtObjRegSetMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00039 
00041    DtObjRegSetMsg(DtObjRegSetType type,
00042       const DtRegionSet &regionSet,
00043       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00044 
00046    DtObjRegSetMsg(const DtNetObjRegSetMsg* netRepMsg,
00047       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00048 
00050    virtual ~DtObjRegSetMsg();
00051 
00053    virtual DtRtiMsg* clone(bool copy = true) const; 
00054 
00056    virtual void set(DtObjRegSetType type,
00057       const DtRegionSet &regionSet);
00058 
00060    virtual void setRegionSetType(DtObjRegSetType type);
00061    virtual DtObjRegSetType regionSetType() const;
00062 
00064    virtual void setRegionSetHandle(DtRegionHandle handleValue);
00065    virtual DtRegionHandle regionSetHandle() const;
00066 
00068    virtual void setAddress(const MAKRti::DtInetAddr& addressValue);
00069    virtual MAKRti::DtInetAddr address() const;
00070 
00072    virtual unsigned long numberRegions() const;      
00073    
00075    virtual const DtRegionHandle* regions() const;
00076 
00078    virtual void reserveRegionSlots(unsigned long numberRegions);
00079 
00081    virtual void addRegion(DtRegionHandle handleValue);
00082 
00084    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00085 
00086 public:
00087 
00088    static DtRtiMsg* create(const DtNetMsgHeader* initial, 
00089                    DtBufferPtr buffer);
00090 
00092    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00093 
00094    static void addCallback(DtConnectionMgr *conn, 
00095                   DtObjRegSetCb cb, void *usr);
00096 
00097    static void removeCallback(DtConnectionMgr *conn, 
00098                      DtObjRegSetCb cb, void *usr);
00099 
00100 protected:
00101    
00103    virtual DtNetU32* netRegions();
00104 
00106    virtual DtNetObjRegSetMsg* netObjRegSetMsg();
00107    virtual const DtNetObjRegSetMsg* netObjRegSetMsg() const;
00108 
00110    virtual DtRtiMsgKind internalDtRtiMsgKind();
00111 
00113    virtual int minSize() const;
00114 
00116    virtual DtObjRegSetMsg* self() const;
00117 
00118 protected:
00119    unsigned long myRegionCount;
00120    unsigned long myReservedSlotCount;
00121    DtRegionHandle* myRegions;
00122    bool myDirty;
00123 };
00124 
00125 
00126 inline DtObjRegSetMsg* DtObjRegSetMsg::self() const
00127 {
00128    return const_cast<DtObjRegSetMsg*>( this );
00129 }
00130 
00131 #endif
00132 #endif
00133 

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)