16 #include <vl/objectPublisherHLA.h>
17 #include <vl/rtiCompatibility.h>
21 class DtStateRepository;
26 class DtLgrHlaSimulationManager;
30 class DT_DLL_LGRSIM DtHLAGenericPublisher :
public DtObjectPublisher ,
31 public DtLgrPublisherInterface
39 (DtLgrHlaSimulationManager& simMgr,
40 DtLgrHlaHandle loggerObjectId, DtLgrHlaHandle loggerClassHandle,
41 RTI::ObjectClassHandle classHandle,
42 const char* objName,
const DtDDMRegionSet* regionSetToUse,
43 double hbtime,
bool waitForRegionData,
bool staticRegion,
bool immediatePublish),
44 (DtLgrHlaSimulationManager& simMgr,
45 DtLgrHlaHandle loggerObjectId, DtLgrHlaHandle loggerClassHandle,
46 RTI::ObjectClassHandle classHandle,
47 const char* objName,
const DtDDMRegionSet* regionSetToUse,
48 double hbtime=0.0,
bool waitForRegionData=
false,
49 bool staticRegion=
true,
bool immediatePublish=
true))
52 virtual ~DtHLAGenericPublisher();
57 DtHLAGenericPublisher(const DtHLAGenericPublisher &other);
60 DtHLAGenericPublisher &operator=(const DtHLAGenericPublisher &other);
66 virtual DtStateRepository* genericStateRep();
69 virtual DtStateRepository* gsr();
72 virtual
void update(const DtStateMsg& msg, const
DtAbsoluteTime& updateTime,
73 bool isTimeFromPast,
bool isStateUpdate,
double scaling,
bool isStatic,
bool sendFlag=true);
76 virtual DtObjectPublisher* objPublisher();
79 virtual
void tick(
double scaling,
bool isStatic);
86 virtual
void setPublish(
bool makePublished);
89 virtual
bool isPublished();
93 virtual
void sendRequestedAttrs(
double scaling,
bool isStatic);
96 virtual
void send(const DtStateMsg& msg);
100 virtual
void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
bool wasStatic,
bool isStatic);
103 virtual
void setRegion(const DtDDMRegionSet& region);
106 virtual const DtDDMRegionSet& publishingRegions() const;
109 virtual
bool publishingToRegion( DtDDMRegionSP region );
114 virtual DtHlaObjectWithStateRep* pubHlaObject();
117 virtual
void sendTheseAttrs(const RTI::AttributeHandleSet& attrs,
double scaling,
bool isStatic );
121 virtual
bool makeObjectPublished(RTI::ObjectClassHandle classHandle, const
char* objName);
124 virtual
void makeObjectUnpublished(RTI::ObjectClassHandle classHandle, const
char* objName);
133 double myHeartbeatInterval;
136 double myLastHeartbeatTime;
139 RTI::AttributeHandleSet* myAttrsToSend;