![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: unsubObjMsg.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtUnsubObjMsg_H_ 00013 #define DtUnsubObjMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netUnPObjMsg.h" 00017 00018 typedef DtNetUnpubObjMsg DtNetUnsubObjMsg; 00019 class DtConnectionMgr; 00020 class DtUnsubObjMsg; 00021 class DtAttributeHandleSet; 00022 typedef void (*DtUnsubObjCb)(const DtUnsubObjMsg& inter, void* usr); 00023 00024 class DT_DLL_LRC DtUnsubObjMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtUnsubObjMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00031 DtUnsubObjMsg( 00032 DtObjectClassHandle theObj, 00033 const DtAttributeHandleSet& theSet, 00034 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 00037 DtUnsubObjMsg(const DtNetUnsubObjMsg* netRepMsg, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00041 virtual ~DtUnsubObjMsg(); 00042 00044 virtual DtRtiMsg* clone(bool copy = true) const; 00045 00047 virtual void set(DtObjectClassHandle theObj, 00048 const DtAttributeHandleSet& theSet); 00049 00051 virtual void setObjectClassHandle(DtObjectClassHandle hand); 00052 virtual DtObjectClassHandle objectClassHandle() const; 00053 00055 virtual void setAttrHandles(const DtAttributeHandleSet& attrs); 00056 virtual const DtAttributeHandleSet& attrHandles() const; 00057 00059 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00060 00061 public: 00062 00064 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00065 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00066 00068 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00069 00071 static void addCallback(DtConnectionMgr* conn, 00072 DtUnsubObjCb cb, void* usr); 00073 static void removeCallback(DtConnectionMgr* conn, 00074 DtUnsubObjCb cb, void* usr); 00075 00076 protected: 00077 00079 virtual DtNetUnsubObjMsg* netUnsubObjMsg(); 00080 virtual const DtNetUnsubObjMsg* netUnsubObjMsg() const; 00081 00083 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00084 00086 virtual int minSize() const; 00087 00089 virtual DtUnsubObjMsg* self() const; 00090 00091 protected: 00092 00093 int myDirty; 00094 DtAttributeHandleSet* myAttrs; 00095 }; 00096 00097 00098 inline DtUnsubObjMsg* DtUnsubObjMsg::self() const 00099 { 00100 return const_cast<DtUnsubObjMsg*>( this ); 00101 } 00102 00103 #endif 00104