VR-Link API Documentation for HLA Evolved
dEnvProcPub.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00009 
00010 #ifndef DtEnvironmentProcessPublisher_H_
00011 #define DtEnvironmentProcessPublisher_H_
00012 
00013 #if DtDIS
00014 
00015 
00016 #include "dObjPub.h"
00017 #include "pdu.h"
00018 #include "envProcessSR.h"
00019 #include "dEnvProcEnc.h"
00020 #include "dEnvProcDec.h"
00021 
00030 class DT_DLL_VL DtEnvironmentProcessPublisher : public DtObjectPublisher
00031 {
00032 
00033 public:
00036    typedef DtEnvironmentProcessRepository* (*DtStateRepCreator)();
00037 
00038 public:
00039 
00041    DtEnvironmentProcessPublisher(
00042      DtEnvironmentProcessRepository* stateRepToUse,
00043      DtExerciseConn* conn, 
00044      const DtObjectId& id = DtObjectId::defaultId());
00045 
00047    DtEnvironmentProcessPublisher(
00048      DtExerciseConn* conn, 
00049      const DtObjectId& id = DtObjectId::defaultId());
00050 
00052    virtual ~DtEnvironmentProcessPublisher();
00053 
00058    virtual void tick();
00059 
00062    virtual DtEnvironmentProcessRepository* environmentProcessStateRep();
00063 
00065    virtual DtEnvironmentProcessRepository* epsr();
00066 
00070    virtual DtEnvironmentProcessDecoder* decoder();
00071 
00074    virtual DtEnvironmentProcessEncoder* encoder();
00075 
00077    virtual const DtObjectId& id() const;
00078 
00080    virtual const DtObjectId& localId() const;
00081 
00083    virtual const DtGlobalObjectDesignator& globalId() const;
00084 
00088    virtual void sendFinalPduOnDestruction(bool onOff);
00089 
00092    virtual void forceUpdate();
00093 
00094 public:
00095 
00097    static void setStateRepCreator(DtStateRepCreator creator);
00098    static DtStateRepCreator stateRepCreator(void);
00099 
00100    static void setClassDfltTimeThreshold(DtTime threshold);
00101 
00102 protected: 
00103 
00105    void sendFinalPdu();
00106 
00108    void init(const DtEntityIdentifier& vehId);
00109 
00110    //copy constructor -- not implemented
00111    DtEnvironmentProcessPublisher(const DtEnvironmentProcessPublisher& orig);
00112 
00114    DtEnvironmentProcessPublisher& operator= 
00115       (const DtEnvironmentProcessPublisher& orig);
00116 
00117 protected:
00118 
00119    DtObjectId myId;
00120    DtEnvironmentProcessDecoder* myDecoder;
00121    DtEnvironmentProcessEncoder* myEncoder;
00122    bool mySendFinalInDtor;
00123 
00124 protected:
00125    static DtStateRepCreator theStateRepCreator;
00126    static DtTime            theClassDfltTimeThreshold;
00127    static bool              theClassDfltIsSetFlag;
00128 };
00129 
00130 inline DtEnvironmentProcessRepository* 
00131    DtEnvironmentProcessPublisher::environmentProcessStateRep()
00132 {
00133    return epsr();
00134 }
00135 
00136 inline DtEnvironmentProcessRepository* DtEnvironmentProcessPublisher::epsr()
00137 {
00138    return static_cast<DtEnvironmentProcessRepository*>(myStateRep);
00139 }
00140 
00141 inline DtEnvironmentProcessEncoder* DtEnvironmentProcessPublisher::encoder()
00142 {
00143    return myEncoder;
00144 }
00145 
00146 inline DtEnvironmentProcessDecoder* DtEnvironmentProcessPublisher::decoder()
00147 {
00148    return myDecoder;
00149 }
00150 
00151 
00152 inline void DtEnvironmentProcessPublisher::sendFinalPduOnDestruction(bool onOff)
00153 {
00154    mySendFinalInDtor = onOff;
00155 }
00156 
00157 inline const DtObjectId& DtEnvironmentProcessPublisher::id() const
00158 {
00159    return myId;
00160 }
00161 
00162 inline const DtObjectId& DtEnvironmentProcessPublisher::localId() const
00163 {
00164    return id();
00165 }
00166 
00167 #endif
00168 #endif
00169 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)