MAK RTIspy API Documentation for HLA Evolved
momSR.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright(c) 2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: momSR.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *********************************************************************/
00008 #ifdef DtMOM
00009 
00010 
00011 
00012 #ifndef DtMomSR_H_
00013 #define DtMomSR_H_
00014 
00015 #include <vlutil/vlHashlist.h>
00016 #include "momInspector.h"
00017 #include "momElement.h"
00018 #include "objMgr.h"
00019 
00020 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
00021 #include <RTI/LogicalTime.h>
00022 #include <RTI/LogicalTimeInterval.h>
00023 #else
00024 #ifdef DtIFSPEC13DLC
00025 #include "RTI13.h"
00026 #define RTI rti13
00027 #else
00028 #include "RTI.hh"
00029 #endif
00030 #endif
00031 
00032 enum DT_DLL_LRC DtMomUpdateType
00033 {
00034    DtMomUpdateStatic,
00035    DtMomUpdateConditional,
00036    DtMomUpdatePeriodic
00037 };
00038 
00039 class DtFomClassMgr;
00040 class DtMomInspector;
00041 class DtMomHandleList;
00042 class DtAhvps;
00043 
00044 class DT_DLL_LRC DtMomSR
00045 {
00046 public:
00047 
00049    DtMomSR(DtFomClassMgr* fomPtr, DtMomInspector* servicePtr,
00050       DtRtiObject* objPtr);
00051 
00053    virtual ~DtMomSR();
00054 
00056    DtMomSR(const DtMomSR& orig);
00057  
00059    DtMomSR& operator=(const DtMomSR& orig);
00060 
00062    virtual void forceUpdate(DtAttributeHandleSet const & set);
00063 
00067    virtual void putElement(char* name, DtMomElement element,
00068       DtMomUpdateType updateType);
00069 
00071    virtual DtMomElement element(DtAttributeHandle attribute);
00072 
00074    virtual DtAttributeHandle attribute(DtMomElement element);
00075 
00077    virtual void encodeAttribute(DtAhvps* vp, DtAttributeHandle attribute) = 0;
00078 
00080    virtual DtAttributeHandleSet const& updateAttributes() const;
00081 
00083    virtual DtAttributeHandleSet const& fullAttributes() const;
00084 
00086    virtual DtAttributeHandleSet const& conditionalAttributes() const;
00087 
00089    virtual DtAttributeHandleSet const& periodicAttributes() const;
00090 
00092    virtual DtAttributeHandleSet const& staticAttributes() const;
00093 
00095    inline DtObjectInstanceHandle objectInstanceHandle() const;
00096 
00097 protected:
00098 
00100    virtual DtMomInspector* localService();
00101    virtual DtMomInspector const * localService() const;
00102 
00103 protected:
00104 
00105    DtFomClassMgr* myFom;
00106    DtMomInspector* myService;
00107    DtRtiObject* myObject;
00108    DtHandle myPrivilege;
00109    DtHandle myClassHandle;
00110    MAKRti::DtHashList myElementMap;
00111    MAKRti::DtHashList myAttributeMap;
00112    DtUpdateType myUpdateType;
00113    DtAttributeHandleSet myUpdateAttributes;
00114    DtAttributeHandleSet myConditionalAttributes;
00115    DtAttributeHandleSet myPeriodicAttributes;
00116    DtAttributeHandleSet myStaticAttributes;
00118    DtAttributeHandleSet myFullAttributes;
00119 
00120 #ifdef DtIFSPEC1516
00121    std::auto_ptr<rti1516::LogicalTime> myTime;
00122    std::auto_ptr<rti1516::LogicalTimeInterval> myInterval;
00123 #elif defined(DtIFSPEC1516E)
00124    std::auto_ptr<rti1516e::LogicalTime> myTime;
00125    std::auto_ptr<rti1516e::LogicalTimeInterval> myInterval;
00126 #else
00127    std::auto_ptr<RTI::FedTime> myTime;
00128    std::auto_ptr<RTI::FedTime> myInterval;
00129 #endif
00130 
00131 };
00132 
00133 
00134 inline DtObjectInstanceHandle DtMomSR::objectInstanceHandle() const
00135 {
00136    DtObjectInstanceHandle hdl = 0;
00137    if(myObject)
00138    {
00139       hdl = myObject->objHandle();
00140    }
00141    return hdl;
00142 }
00143 
00144 #endif
00145 #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)