![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2000 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: aggLclNetIf.h,v $ $Revision: 1.27 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef DtSimAggregateLocalEntityNetInterface_H_ 00015 #define DtSimAggregateLocalEntityNetInterface_H_ 00016 00017 #include "vrfobjcore/vrfobjcoreDefines.h" 00018 #include "vrfobjcore/lclEntNetIf.h" 00019 #include "vrfobjcore/vrfObjSR.h" 00020 #include <vl/varDatumRec.h> 00021 00022 class DtVrfAggregatePublisher; 00023 class DtExtAggregateStateRepository; 00024 class DtVrfAggregateStateRepository; 00025 00028 class DT_DLL_vrfobjcore DtSimAggregateLocalEntityNetInterface : public DtSimLocalEntityNetInterface 00029 { 00030 protected: 00031 00033 DtSimAggregateLocalEntityNetInterface(); 00034 00035 public: 00036 00038 DtSimAggregateLocalEntityNetInterface(const DtString & name, 00039 DtVrfObject* vrfObject, 00040 DtReaderWriterRegistry* parentRegistry = 0, 00041 bool publishObject = true); 00042 00044 DtSimAggregateLocalEntityNetInterface(const 00045 DtSimAggregateLocalEntityNetInterface & orig, 00046 DtReaderWriterRegistry * parentRegistry = 0); 00047 00049 const DtSimAggregateLocalEntityNetInterface & operator=(const 00050 DtSimAggregateLocalEntityNetInterface & orig); 00051 00053 virtual ~DtSimAggregateLocalEntityNetInterface(); 00054 00056 bool init(); 00057 00059 virtual void updateNet(); 00060 00066 virtual void tick(); 00067 00070 virtual void setMinTickPeriod(double minTickPeriod); 00071 00073 virtual double minTickPeriod() const; 00074 00076 virtual void setMinTickPeriodVariance(double minTickPeriodVariance); 00077 00079 virtual double minTickPeriodVariance() const; 00080 00084 virtual void setNextTickTime(double nextTickTime); 00085 00087 virtual double nextTickTime() const; 00088 00094 virtual void updatePublisher(); 00095 00097 virtual bool createPublisher(); 00098 00100 virtual void destroyPublisher(); 00101 00111 virtual bool setAggregatePublisher(DtVrfAggregatePublisher * publisher); 00112 00116 virtual void setupNetworkRepository(); 00117 00120 virtual DtVrfAggregatePublisher * aggregatePublisher() const; 00121 00124 virtual DtExtAggregateStateRepository * aggregateNetworkState() const; 00125 00126 virtual DtVrfAggregateStateRepository * aggregateLocalState() const; 00127 00131 virtual bool setUserVariableDatum( int userRecordNumber, 00132 const DtVariableDatumRecord& record); 00133 00135 virtual bool getUserVariableDatum( int userRecordNumber, 00136 DtVariableDatumRecord& rec); 00137 00140 virtual bool encodeVariableDatum(); 00141 00147 virtual bool isANetSubordinate(const DtGlobalObjectDesignator& 00148 globalId); 00149 00152 virtual bool isPseudoAggregate() const { return false; } 00153 00154 virtual bool isAggregate() const { return true; } 00155 00158 virtual DtString type() const; 00159 00163 virtual void setForceUpdate(bool flag); 00164 00168 static DtSimAggregateLocalEntityNetInterface * 00169 isAggregateLocalEntityNetInterface(const DtSimObjectNetInterface * 00170 objNetInterface); 00171 00172 static DtSimObjectNetInterface * creator(const DtString & name, 00173 DtVrfObject* vrfObject, 00174 DtReaderWriterRegistry* parentRegistry, 00175 bool publishObject); 00176 00177 protected: 00179 virtual bool updateVrfDataAsSeenByRemote(); 00180 00181 protected: 00182 00183 DtVrfAggregatePublisher* myAggregatePublisher; 00184 00185 double myMinTickPeriod; 00186 double myMinTickPeriodVariance; 00187 double myNextTickTime; 00188 00189 bool myFirstPause; 00190 bool myForceUpdate; 00191 }; 00192 00193 #endif