![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: serTimReg.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifdef DtMOM 00009 00012 00013 #ifndef DtEnableTimeRegulationInteraction_H_ 00014 #define DtEnableTimeRegulationInteraction_H_ 00015 00016 #include "rtiMsConfig.h" 00017 #include "internalTypes.h" 00018 #include "mInteraction.h" 00019 #include <vlutil/vlList.h> 00020 00021 class DtMomInterCbMgr; 00022 class DtEnableTimeRegulationInteraction; 00023 typedef void (*DtEnableTimeRegulationInteractionCb) 00024 (const DtEnableTimeRegulationInteraction& inter, void* usr); 00025 00026 class DT_DLL_LRC DtEnableTimeRegulationInteraction : 00027 public DtServiceInteraction 00028 { 00029 public: 00030 00032 DtEnableTimeRegulationInteraction(); 00033 00035 virtual ~DtEnableTimeRegulationInteraction(); 00036 00038 DtEnableTimeRegulationInteraction( 00039 const DtEnableTimeRegulationInteraction& orig); 00040 00042 DtEnableTimeRegulationInteraction& operator=( 00043 const DtEnableTimeRegulationInteraction& orig); 00044 00047 virtual const DtPhvps& phvps(); 00048 00051 virtual bool setFromPhvps(const DtPhvps& phvps); 00052 00055 #ifdef DtIFSPEC13 00056 virtual bool getFedtime(RTI::FedTime & time) const; 00057 virtual void setFedtime(RTI::FedTime const & time); 00058 #endif 00059 00062 #ifdef DtIFSPEC1516 00063 virtual bool getLookahead(rti1516::LogicalTimeInterval & interval) const; 00064 virtual void setLookahead(rti1516::LogicalTimeInterval const & interval); 00065 #elif defined(DtIFSPEC1516E) 00066 virtual bool getLookahead(rti1516e::LogicalTimeInterval & interval) const; 00067 virtual void setLookahead(rti1516e::LogicalTimeInterval const & interval); 00068 #else 00069 virtual bool getLookahead(RTI::FedTime & interval) const; 00070 virtual void setLookahead(RTI::FedTime const & interval); 00071 #endif 00072 00073 public: 00075 static DtServiceInteraction* create(); 00076 00078 static void addCallback(DtMomInterCbMgr* callBackManager, 00079 DtEnableTimeRegulationInteractionCb cb, void* usr); 00080 static void removeCallback(DtMomInterCbMgr* callBackManager, 00081 DtEnableTimeRegulationInteractionCb cb, void* usr); 00082 00083 protected: 00084 00085 #ifdef DtIFSPEC13 00086 00087 virtual void encodeFedtime( 00088 const DtMomInteraction& data, 00089 DtPhvps* parameters, 00090 DtParameterHandle parameterHandle); 00091 00093 virtual void decodeFedtime( 00094 DtMomInteraction* data, 00095 const DtPhvps& parameters, 00096 int index); 00097 #endif 00098 00100 virtual void encodeLookahead( 00101 const DtMomInteraction& data, 00102 DtPhvps* parameters, 00103 DtParameterHandle parameterHandle); 00104 00106 virtual void decodeLookahead( 00107 DtMomInteraction* data, 00108 const DtPhvps& parameters, 00109 int index); 00110 00111 public: 00112 static const char* theInteractionName; 00113 00114 protected: 00116 00117 #ifdef DtIFSPEC13 00118 DtMomNetParameter* myEncodedTime; 00119 #endif 00120 DtMomNetParameter* myEncodedInterval; 00121 bool myReceivedEncodedTime; 00122 bool myReceivedEncodedInterval; 00123 00124 const char *FEDTIME_PARAMETER_NAME; 00125 const char *LOOKAHEAD_PARAMETER_NAME; 00126 00127 }; 00128 00129 #endif 00130 #endif