MAK RTIspy API Documentation for HLA 1516
updateMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: updateMsg.h,v $ $Revision: 1.25 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtUpdateMsg_H_
00013 #define DtUpdateMsg_H_
00014 
00015 #include "rtiMsConfig.h"
00016 #include "rtiMsg.h"
00017 #include "netAttrs.h"
00018 #include "rtiObject.h"
00020 #include "RIDparams.h"
00021 class DtAhvps;
00022 class DtUpdateMsg;
00023 class DtObjectClassInfo;
00024 
00025 typedef void (*DtUpdateCb)(const DtUpdateMsg& msg, void* usr);
00026 
00027 class DT_DLL_LRC DtUpdateMsg : public DtRtiMsg
00028 {
00029 public:
00030 
00032    DtUpdateMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00033 
00035    virtual ~DtUpdateMsg();
00036 
00038    virtual void setClassHandle(DtObjectClassHandle hand) = 0;
00039    virtual DtObjectClassHandle classHandle() const = 0;
00040 
00042    virtual void setObjHandle(DtObjectInstanceHandle id) = 0;
00043    virtual DtObjectInstanceHandle objHandle() const = 0;
00044 
00046    virtual void setChannel(unsigned long handleValue);
00047    virtual unsigned long channel() const;
00048 
00050    virtual void setObjName(const char* name);
00051    virtual const char* objName() const;
00052 
00054 #ifdef DtIFSPEC1516
00055    virtual void setTag(rti1516::VariableLengthData const&  tag);
00056    virtual rti1516::VariableLengthData const&  tag() const;
00057 #elif defined(DtIFSPEC1516E)
00058    virtual void setTag(rti1516e::VariableLengthData const&  tag);
00059    virtual rti1516e::VariableLengthData const&  tag() const;
00060 #else
00061    virtual void setTag(char const * tag);
00062    virtual char const * tag() const;
00063 #endif
00064 
00066    virtual void setAttrs(
00067       const DtAhvps& theAttributes,
00068       bool checkBufferSize=true);
00069 
00075    virtual void getAttrs(DtAhvps& attrSetBuff,
00076       bool useMsgMemory,
00077       DtObjectClassInfo* objDesc=NULL,
00078       DtHandle regionSetHandle=DtDefaultRegionSetHandle, 
00079       DtRtiObject* obj=NULL,
00080       float tolerance=0.0) const;
00081    
00083    virtual unsigned long numAttrs() const;
00084    
00085 public:
00086 
00088    static void setChannelIncluded(bool includeChannel);
00089    static bool channelIncluded();
00090    
00091 protected:
00092    
00094    virtual void setNameSize(int size) = 0;
00095    virtual int nameSize() const = 0;
00096 
00098    virtual void setTagSize(int size) = 0;
00099    virtual int tagSize() const = 0;
00100 
00102    virtual DtNetU32* channelPtr() const=0;
00103 
00105    virtual char* namePtr()=0;
00106 
00108    virtual char* tagPtr()=0;
00109 
00111    virtual DtNetAttrs* netAttrs() = 0;
00113    virtual DtNetBigAttrs* netBigAttrs() = 0;
00114 
00116    virtual DtNetAttrValue* nextNetAttr(DtNetAttrValue* netAttr) const;
00118    virtual DtNetBigAttrValue* nextNetBigAttr(DtNetBigAttrValue* netAttr) const;
00119 
00125    virtual void fillFromNetAttrs(
00126       const DtNetAttrs* netRepAttrs,
00127       DtAhvps& attrs,
00128       bool useMsgMemory,
00129       DtObjectClassInfo* objDesc=NULL,
00130       DtHandle regionSetHandle=DtDefaultRegionSetHandle,
00131       DtRtiObject* obj=NULL,
00132       float tolerance=0.0) const;
00133 
00140    virtual void fillFromNetBigAttrs(
00141       const DtNetBigAttrs* netAttrs,
00142       DtAhvps& attrs,
00143       bool useMsgMemory,
00144       DtObjectClassInfo* objDesc=NULL,
00145       DtHandle regionSetHandle=DtDefaultRegionSetHandle,
00146       DtRtiObject* obj=NULL,
00147       float tolerance=0.0) const;
00148 
00150    virtual void fillNetAttrs(
00151       const DtAhvps& theAttributes,
00152       DtNetAttrs* netRepAttrs);
00154    virtual void fillNetBigAttrs(
00155       const DtAhvps& attrs,
00156       DtNetBigAttrs* netAttrs);
00157 
00159    virtual void setSizeOfNetAttrs(unsigned long size);
00160    
00162    virtual unsigned long sizeNeededForNetAttrs(
00163       const DtAhvps& attrs) const;
00164 
00166    virtual int channelFieldSize() const;
00167 
00169    virtual int nameFieldSize() const;
00170 
00172    virtual int tagFieldSize() const;
00173 
00175    virtual DtUpdateMsg* self() const;
00176 
00177 protected:
00178 #ifdef DtIFSPEC1516
00179    rti1516::VariableLengthData* myTag;
00180 #elif defined(DtIFSPEC1516E)
00181     rti1516e::VariableLengthData* myTag;
00182 #else
00183    char* myTag;
00184 #endif
00185    char* myName;
00186    int myAttrFieldLength;
00187 
00188 protected:
00189    static bool theChannelIncluded;
00190 };
00191 
00192 
00193 inline DtUpdateMsg* DtUpdateMsg::self() const
00194 {
00195    return const_cast<DtUpdateMsg*>( this );
00196 }
00197 
00198 inline bool DtUpdateMsg::channelIncluded()
00199 {
00200    return theChannelIncluded;
00201 }
00202 
00203 #endif
00204 

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)