VR-Link API Documentation for HLA 1.3
tRadXmitInterface.h
Go to the documentation of this file.
00001 //********************************************************************
00004 //********************************************************************
00005 //********************************************************************
00007 //********************************************************************
00008 
00009 #ifndef tRadXmitInterface_H_
00010 #define tRadXmitInterface_H_
00011 
00012 #if DtTENA
00013 
00014 #include "makLromMapExport.h"
00015 #include <vlutil/vlMachineTypes.h>
00016 #include <vl/tObjectInterface.h>
00017 #include <vl/tReflRadXmitr.h>
00018 #include <vl/radioXmitSR.h>
00019 #include <vlpi/entityType.h>
00020 #include <vl/globalObjDes.h>
00021 
00022 #include <MAK/RadioTransmitter/ServantPtr.h>
00023 #include <MAK/RadioTransmitter/ProxyPtr.h>
00024 #include <MAK/RadioTransmitter/ImmutablePublicationStatePtr.h>
00025 #include <MAK/RadioTransmitter/SubscriptionInfoPtr.h>
00026 
00027 #include <map>
00028 #include <list>
00029 
00033 
00035 //
00042 class DT_DLL_MAKLROM DtRadioTransmitterInterface: public DtObjectInterface
00043 {
00044 protected:
00047    class DtRadioTransmitterServantObject : public DtTenaServantObject
00048    {
00049    public:
00051       DtRadioTransmitterServantObject( MAK::RadioTransmitter::ServantPtr sp):myServantPtr(sp){}
00052 
00054       virtual ~DtRadioTransmitterServantObject() {}
00055 
00057       virtual const MAK::RadioTransmitter::ServantPtr servant() const { return myServantPtr;}
00058 
00060       virtual MAK::RadioTransmitter::ServantPtr servant() { return myServantPtr;}
00061 
00062    protected:
00063        MAK::RadioTransmitter::ServantPtr myServantPtr;
00064    };
00065 
00066 public:
00068    DtRadioTransmitterInterface(DtExerciseConn* exConn);
00069 
00071    virtual ~DtRadioTransmitterInterface();
00072 
00073 private:
00075    DtRadioTransmitterInterface(const DtRadioTransmitterInterface &other);
00076 
00078    DtRadioTransmitterInterface& operator=(const DtRadioTransmitterInterface &other);
00079 
00080 public:
00083    virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
00084 
00086    virtual void processServantCleanup(DtTenaServantObject* servantObject);
00087 
00089    virtual void subscribe();
00090 
00092    virtual bool needUpdate(const DtStateRepository& stateRep, 
00093                            const DtStateRepository& asSeenByRemote,
00094                            bool useThresholding = true);
00095 
00097    virtual void decode(const DtTenaServantObject* servant,
00098                        DtStateRepository* stateRep)const;
00099 
00101    virtual void encode(DtTenaServantObject* servant, 
00102                        const DtStateRepository* stateRep,
00103                        TENA::Time::Pointer timeForStamping,
00104                        bool forceUpdate = false);
00105 
00107    virtual DtReflectedObject *createReflectedObject()const;
00108 
00110    virtual void processAddition(MAK::RadioTransmitter::ProxyPtr const &proxy);
00111 
00113    virtual void processUpdate(MAK::RadioTransmitter::ProxyPtr const &proxy);
00114 
00116    virtual void processRemoval(MAK::RadioTransmitter::ProxyPtr const &proxy);
00117 
00118 
00119 protected:
00121    virtual void decode(const MAK::RadioTransmitter::ImmutablePublicationStatePtr pubStatePtr,
00122                        DtStateRepository* stateRep)const;
00123 
00124 protected:
00125 
00127    MAK::RadioTransmitter::SubscriptionInfoPtr mySubscriptionInfoPtr;
00128    typedef std::map<MAK::RadioTransmitter::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
00129    ProxyToRefObjMap myRefRadXmitMap;
00130    ProxyToRefObjMap myTransmitterWaitList;
00131 };
00132 
00133 
00134 #endif
00135 #endif
00136 
00137 
00138 

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)