![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2006 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfAggregatePub.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef VRFAGGREGATEPUB_H 00010 #define VRFAGGREGATEPUB_H 00011 00012 #include <vl/aggPub.h> 00013 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00014 #include <vrfExtObjects/vrfObjIdGen.h> 00015 00016 #ifdef DtDIS 00017 typedef DtAggregateStateEncoder DtAggPublisherEncoder; 00018 typedef DtAggregateStateDecoder DtAggPublisherDecoder; 00019 #elif DtHLA 00020 typedef DtHlaStateEncoder DtAggPublisherEncoder; 00021 typedef DtHlaStateDecoder DtAggPublisherDecoder; 00022 #endif 00023 00024 class DtExtAggregateStateRepository; 00025 class DtEntityType; 00026 class DtBaseEntityStateRepository; 00027 00032 class DT_DLL_vrfExtObjects DtVrfAggregatePublisher 00033 { 00034 public: 00035 typedef DtAggregateStateRepository* (*MyStateRepCreator)(); 00036 00037 public: 00044 DtVrfAggregatePublisher( 00045 const DtEntityType& type, 00046 DtExerciseConn* conn, 00047 const DtGlobalObjectDesignator& id = DtVrfObjectIdGenerator::nullId() 00048 ); 00049 00051 virtual ~DtVrfAggregatePublisher(); 00052 00053 public: 00056 virtual void addEntity(const DtBaseEntityStateRepository*); 00057 virtual void removeEntity(const DtBaseEntityStateRepository*); 00058 00059 virtual void addAggregate(const DtBaseEntityStateRepository*); 00060 virtual void removeAggregate(const DtBaseEntityStateRepository*); 00061 00062 public: 00069 virtual void tick(); 00070 00073 virtual DtExtAggregateStateRepository* aggregateProcessStateRep(); 00074 virtual DtExtAggregateStateRepository* aggregateStateRep(); 00075 00077 virtual DtExtAggregateStateRepository* agsr(); 00078 00079 #ifdef DtHLA 00080 00081 00082 00083 virtual DtAggPublisherDecoder* decoder(); 00084 00087 virtual DtAggPublisherEncoder* encoder(); 00088 #endif 00089 00091 virtual const DtObjectId& id() const; 00092 00094 virtual const DtObjectId& localId() const; 00095 00097 virtual const DtGlobalObjectDesignator& globalId() const; 00098 00101 virtual void forceUpdate(); 00102 00103 protected: 00104 #ifdef DtDIS 00105 00106 00107 virtual void sendFinalPdu(); 00108 #endif 00109 00110 private: 00112 DtVrfAggregatePublisher(const DtVrfAggregatePublisher&); 00113 DtVrfAggregatePublisher& operator=(const DtVrfAggregatePublisher&); 00114 00115 protected: 00116 DtAggregatePublisher* myPublisher; 00117 }; 00118 00119 #endif