MAK RTIspy API Documentation for HLA 1516
pubRegMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: pubRegMsg.h,v $ $Revision: 1.17 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtAssocPubRegMsg_H_
00013 #define DtAssocPubRegMsg_H_
00014 #ifdef DDM
00015 
00016 #include "rtiMsg.h"
00017 #include "netPubRegMsg.h"
00018 #include "attrHandSet.h"
00019 #include <vlutil/vlString.h>
00020 
00021 class DtConnectionMgr;
00022 class DtAssocPubRegMsg;
00023 
00024 typedef void (*DtAssocPubRegCb)(const DtAssocPubRegMsg& msg, void* usr);
00025 
00026 class DT_DLL_LRC DtAssocPubRegMsg : public DtRtiMsg
00027 {
00028 public:
00029 
00031    DtAssocPubRegMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00032 
00034    DtAssocPubRegMsg(
00035       DtRegionHandle regSetHandleValue,
00036       DtObjectInstanceHandle objectHandleValue,
00037       const char* objName,
00038       DtObjectClassHandle classHandleValue,
00039       bool isRemovingAssoc,
00040       const DtAttributeHandleSet& attrSet,
00041       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00042 
00044    DtAssocPubRegMsg(const DtNetAssocPubRegMsg* netRepMsg,
00045       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00046 
00048    virtual ~DtAssocPubRegMsg();
00049 
00051    virtual DtRtiMsg* clone(bool copy = true) const; 
00052 
00054    virtual void set(
00055       DtRegionHandle regSetHandleValue,
00056       DtObjectInstanceHandle objectHandleValue,
00057       const char* objName,
00058       DtObjectClassHandle classHandleValue,
00059       bool isRemovingAssoc,
00060       const DtAttributeHandleSet& attrSet);
00061 
00063    virtual void setRegionSetHandle(DtRegionHandle handleValue);
00064    virtual DtRegionHandle regionSetHandle() const;
00065 
00067    virtual void setObjectHandle(DtObjectInstanceHandle handleValue);
00068    virtual DtObjectInstanceHandle objectHandle() const;
00069 
00071    virtual void setObjName(const char* name);
00072    virtual const char* objName() const;
00073 
00075    virtual void setClassHandle(DtObjectClassHandle handleValue);
00076    virtual DtObjectClassHandle classHandle() const;
00077 
00079    virtual void setRemoveAssociation(bool isRemovingAssoc);
00080    virtual bool isRemoveAssociation() const;
00081 
00083    virtual void setAttrHandles(const DtAttributeHandleSet& attrs);
00084    virtual const DtAttributeHandleSet& attrHandles() const;
00085 
00087    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00088 
00089 public:
00090 
00092    static DtRtiMsg* create(const DtNetMsgHeader* initial, 
00093       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);    
00094 
00096    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00097 
00099    static void addCallback(DtConnectionMgr *conn, 
00100       DtAssocPubRegCb cb, void *usr);
00101    static void removeCallback(DtConnectionMgr *conn, 
00102       DtAssocPubRegCb cb, void *usr);
00103    
00104 protected:
00105    
00107    virtual DtNetAssocPubRegMsg* netAssocPubRegMsg();
00108    virtual const DtNetAssocPubRegMsg* netAssocPubRegMsg() const;
00109 
00111    virtual int minSize() const;
00112 
00114    virtual DtRtiMsgKind internalDtRtiMsgKind();
00115 
00117    virtual char* namePtr();
00118 
00120    virtual unsigned short nameFieldSize() const;
00121 
00123    virtual DtAssocPubRegMsg* self() const;
00124 
00125 protected:
00126 
00127    bool myDirty;
00128    DtAttributeHandleSet* myAttrs;
00129    MAKRti::DtString myName;
00130 };
00131 
00132 
00133 inline DtAssocPubRegMsg* DtAssocPubRegMsg::self() const
00134 {
00135    return const_cast<DtAssocPubRegMsg*>( this );
00136 }
00137 
00138 #endif
00139 #endif

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)