10 #ifndef hlaGenericPublisher_H_
11 #define hlaGenericPublisher_H_
17 #include <vl/objectPublisherHLA.h>
18 #include <vl/rtiCompatibility.h>
22 class DtGenericStateRepository;
27 class DtLgrHlaSimulationManager;
31 class DT_DLL_LGRSIM DtHLAGenericPublisher :
public DtObjectPublisher ,
32 public DtLgrPublisherInterface
40 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
41 const char* objName,
const DtDDMRegionSet* regionSetToUse,
42 double hbtime,
bool waitForRegionData,
bool staticRegion,
bool immediatePublish),
43 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
44 const char* objName,
const DtDDMRegionSet* regionSetToUse,
45 double hbtime=0.0,
bool waitForRegionData=
false,
46 bool staticRegion=
true,
bool immediatePublish=
true))
49 virtual ~DtHLAGenericPublisher();
54 DtHLAGenericPublisher(const DtHLAGenericPublisher &other);
57 DtHLAGenericPublisher &operator=(const DtHLAGenericPublisher &other);
63 virtual DtGenericStateRepository* genericStateRep();
66 virtual DtGenericStateRepository* gsr();
69 virtual
void update(const DtStateMsg& msg,
double scaling,
bool isStatic);
72 virtual DtObjectPublisher* objPublisher();
75 virtual
void tick(
double scaling,
bool isStatic);
82 virtual
void setPublish(
bool makePublished);
85 virtual
bool isPublished();
89 virtual
void sendRequestedAttrs();
91 virtual
void send(const DtStateMsg& msg);
95 virtual
void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
bool wasStatic,
bool isStatic);
99 bool sendAllNextTick();
103 void setSendAllNextTick(
bool yesNo = true);
105 virtual
void setRegion(const DtDDMRegionSet& region);
108 virtual const DtDDMRegionSet& publishingRegions() const;
111 virtual
bool publishingToRegion( DtDDMRegionSP region );
116 virtual
void sendTheseAttrs(const RTI::AttributeHandleSet& attrs );
120 virtual
bool makeObjectPublished(RTI::ObjectClassHandle classHandle, const
char* objName);
123 virtual
void makeObjectUnpublished(RTI::ObjectClassHandle classHandle, const
char* objName);
129 DtLgrHlaSimulationManager& mySimMgr;
135 bool mySendAllNextTick;
138 double myHeartbeatInterval;
141 double myLastHeartbeatTime;