10 #ifndef hlaGenericPublisher_H_
11 #define hlaGenericPublisher_H_
17 #include <vl/objectPublisherHLA.h>
18 #include <vl/rtiCompatibility.h>
26 class DtLgrHlaSimulationManager;
30 class DT_DLL_LGRSIM DtHLAGenericPublisher :
public DtObjectPublisher ,
31 public DtLgrPublisherInterface
39 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
40 const char* objName,
const DtDDMRegionSet* regionSetToUse,
41 double hbtime,
bool waitForRegionData,
bool staticRegion,
bool immediatePublish),
42 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
43 const char* objName,
const DtDDMRegionSet* regionSetToUse,
44 double hbtime=0.0,
bool waitForRegionData=
false,
45 bool staticRegion=
true,
bool immediatePublish=
true))
48 virtual ~DtHLAGenericPublisher();
53 DtHLAGenericPublisher(const DtHLAGenericPublisher &other);
56 DtHLAGenericPublisher &operator=(const DtHLAGenericPublisher &other);
62 virtual DtStateRepository* genericStateRep();
65 virtual DtStateRepository* gsr();
68 virtual
void update(const DtStateMsg& msg,
double scaling,
bool isStatic);
71 virtual DtObjectPublisher* objPublisher();
74 virtual
void tick(
double scaling,
bool isStatic);
81 virtual
void setPublish(
bool makePublished);
84 virtual
bool isPublished();
88 virtual
void sendRequestedAttrs();
90 virtual
void send(const DtStateMsg& msg);
94 virtual
void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
bool wasStatic,
bool isStatic);
98 bool sendAllNextTick();
102 void setSendAllNextTick(
bool yesNo = true);
104 virtual
void setRegion(const DtDDMRegionSet& region);
107 virtual const DtDDMRegionSet& publishingRegions() const;
110 virtual
bool publishingToRegion( DtDDMRegionSP region );
115 virtual
void sendTheseAttrs(const RTI::AttributeHandleSet& attrs );
119 virtual
bool makeObjectPublished(RTI::ObjectClassHandle classHandle, const
char* objName);
122 virtual
void makeObjectUnpublished(RTI::ObjectClassHandle classHandle, const
char* objName);
128 DtLgrHlaSimulationManager& mySimMgr;
134 bool mySendAllNextTick;
137 double myHeartbeatInterval;
140 double myLastHeartbeatTime;