VR-Link API Documentation for HLA 1516
hObjPub.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 #if DtHLA 
00008 
00009 #ifndef hObjPub_H_
00010 #define hObjPub_H_
00011 
00012 
00013 #include <vlutil/vlMachineTypes.h>
00014 #include "rtiNamespace.h"
00015 #include "objectId.h"
00016 #include "globalObjDes.h"
00017 #include "hlaObjWithSR.h"
00018 #include "region.h"
00019 
00023 
00024 class DtStateRepository;
00025 class DtExerciseConn;
00026 class DtHlaStateDecoder;
00027 class DtHlaStateEncoder;
00028 
00034 class DT_DLL_VL DtObjectPublisher
00035 {
00036 public:
00037 
00040    DtObjectPublisher(DtExerciseConn* conn,
00041       DtStateRepository* stateRep,
00042       DtStateRepository* asSeenByRemote, 
00043       bool okToDeleteStateRep = true,
00044       const DtDDMRegionSet* regionSet = 0);
00045       
00049    virtual ~DtObjectPublisher();
00050 
00051 private:
00052 
00054    DtObjectPublisher(const DtObjectPublisher& orig);
00055 
00057    DtObjectPublisher& operator= (const DtObjectPublisher& orig);
00058 
00059 public:
00060 
00067    
00070    virtual void setHlaObject(
00071       const char* className,
00072       DtHlaStateEncoder* encoder = 0,
00073       DtHlaStateDecoder* decoder = 0,
00074       const char* objectName = 0,
00075       const DtDDMRegionSet* regionSet = 0);
00076 
00079    virtual void setHlaObject(
00080       RTI::ObjectClassHandle hand,
00081       DtHlaStateEncoder* encoder = 0,
00082       DtHlaStateDecoder* decoder = 0,
00083       const char* objectName = 0,
00084       const DtDDMRegionSet* regionSet = 0);
00085 
00088    virtual void setHlaObject(
00089       DtHlaObjectWithStateRep* obj,
00090       DtHlaStateEncoder* encoder = 0,
00091       DtHlaStateDecoder* decoder = 0);
00092       
00096    virtual void detachHlaObject();
00097    
00100    virtual DtStateRepository* stateRep();
00101 
00103    virtual DtStateRepository* sr();
00104 
00109    virtual DtStateRepository* approximateRemoteStateRep();
00110 
00114    virtual DtHlaStateDecoder* decoder();
00115 
00118    virtual DtHlaStateEncoder* encoder();
00119 
00121    virtual DtHlaObjectWithStateRep* hlaObject();
00122 
00124    virtual DtExerciseConn* exerciseConn();
00125 
00127    virtual const DtObjectId& id() const;
00128 
00130    virtual const DtObjectId& objectId() const;
00131 
00133    virtual const DtObjectId& localId() const;
00134 
00136    virtual const DtString& name() const;
00137 
00140    virtual const DtGlobalObjectDesignator& globalId() const;
00141 
00147    virtual void forceUpdate();
00148    virtual void forceUpdate(const RTI::AttributeHandleSet& set);
00149 
00151    virtual void tick();
00152 
00156    virtual void setDeleteObjInDtorFlag(bool onOff);
00157    virtual bool deleteObjInDtorFlag() const;
00158 
00159    virtual const DtDDMRegionSet& publishingRegions() const;
00160 
00163    virtual void addRegion(DtDDMRegionSP regionToAdd);
00164 
00169    virtual void removeRegion(DtDDMRegionSP regionToRemove);
00170 
00171 public:
00172    
00174    static void removeObjectCb(DtHlaObject* obj, void* pub);
00175 
00176 protected:
00177 
00178 
00181    virtual void processRemoveObject(DtHlaObject* obj);
00182 
00183 protected:
00184 
00185    DtExerciseConn* myExConn;
00186    DtHlaObjectWithStateRep* myHlaObj;
00187    DtStateRepository* myStateRep;
00188    DtStateRepository* myAsSeenByRemote;
00189    DtHlaStateEncoder* myEncoder;
00190    DtHlaStateDecoder* myDecoder;
00191    DtObjectId myObjectId;
00192    bool myOkToDeleteStateRepFlag;
00193    DtString myName;
00194    bool myDeleteObjInDtorFlag;
00195    DtDDMRegionSet myPublishingRegions;
00196 
00197 public:
00198    
00203    DtObjectPublisher(DtExerciseConn* conn, const char* name = 0);
00204    void init(RTI::ObjectClassHandle hand, DtStateRepository* stateRep,
00205       DtStateRepository* asSeenByRemote, DtHlaStateEncoder* encoder = 0,
00206       DtHlaStateDecoder* decoder = 0);
00207    void init(const char* className, DtStateRepository* stateRep,
00208       DtStateRepository* asSeenByRemote, DtHlaStateEncoder* encoder = 0,
00209       DtHlaStateDecoder* decoder = 0);
00210 };
00211 
00212 inline DtStateRepository* DtObjectPublisher::stateRep()
00213 {
00214    return myStateRep;
00215 }
00216 
00217 inline DtStateRepository* DtObjectPublisher::sr()
00218 {
00219    return myStateRep;
00220 }
00221 
00222 inline DtExerciseConn* DtObjectPublisher::exerciseConn()
00223 {
00224    return myExConn;
00225 }
00226 
00227 inline DtHlaObjectWithStateRep* DtObjectPublisher::hlaObject()
00228 {
00229    return myHlaObj;
00230 }
00231 
00232 inline const DtObjectId& DtObjectPublisher::localId() const
00233 {
00234    return id();
00235 }
00236 
00237 inline DtStateRepository* DtObjectPublisher::approximateRemoteStateRep()
00238 {
00239   return myAsSeenByRemote;
00240 }
00241 
00242 #endif   //DtObjectPublisher_H_
00243 #endif   //DtHLA
00244 

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)