![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: momNetParam.h,v $ $Revision: 1.18 $ $State: Exp $ 00007 *********************************************************************/ 00010 00011 #ifndef DtMomNetParameter_H_ 00012 #define DtMomNetParameter_H_ 00013 00014 #include <vlutil/vlBaseMsg.h> 00015 #ifdef DtMOM 00016 #include "rtiMsConfig.h" 00017 #include <vlutil/vlBaseMsg.h> 00018 #include "internalTypes.h" 00019 #include <vlutil/vlFedTarget.h> 00020 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) 00021 #include "momArgument.h" 00022 #endif 00023 00024 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) 00025 #include <RTI/Typedefs.h> 00026 #include <RTI/LogicalTime.h> 00027 #include <RTI/LogicalTimeInterval.h> 00028 #include <RTI/FederateAmbassador.h> 00029 #include <string> 00030 #else 00031 #ifdef DtIFSPEC13DLC 00032 #include "RTI13.h" 00033 #define RTI rti13 00034 #else 00035 #include "RTI.hh" 00036 #endif 00037 #endif 00038 #include <vlutil/vlString.h> 00039 00040 class DtFederateHandleSet; 00041 class DtAttributeHandleSet; 00042 class DtAhvps; 00043 class DtPhvps; 00044 class DtMomHandleList; 00045 class DtMomTallyList; 00046 class DtSyncPt; 00047 00048 enum DT_DLL_LRC DtMomAttributeStateOptions 00049 { 00050 DT_MOM_OWNED, 00051 DT_MOM_UNOWNED 00052 }; 00053 00054 enum DT_DLL_LRC DtMomAlertTypes 00055 { 00056 DT_MOM_EXCEPTION, 00057 DT_MOM_RTI_INTERNAL_ERROR, 00058 DT_MOM_FEDERATE_INTERNAL_ERROR, 00059 DT_MOM_SERVICE_EXCEPTION, 00060 DT_MOM_INVALID_PARAMS 00061 }; 00062 00063 enum DT_DLL_LRC DtMomInitiatorOptions 00064 { 00065 DT_MOM_FEDERATE, 00066 DT_MOM_RTI 00067 }; 00068 00069 enum DT_DLL_LRC DtMomFederateStates { 00070 DT_MOM_FEDERATE_RUNNING, 00071 DT_MOM_FEDERATE_SAVE_PENDING, 00072 DT_MOM_FEDERATE_SAVING, 00073 DT_MOM_FEDERATE_RESTORE_PENDING, 00074 DT_MOM_FEDERATE_RESTORING, 00077 DT_MOM_FEDERATE_INACTIVE 00078 }; 00079 00080 enum DT_DLL_LRC DtMomTimeManagerStates { 00081 DT_MOM_TIME_IDLE, 00082 DT_MOM_TIME_EVENTS_PENDING 00083 }; 00084 00085 enum DT_DLL_LRC DtMomSyncPointStatus 00086 { 00087 DtMomSyncNoActivity, 00088 DtMomSyncAttemptingToRegister, 00089 DtMomSyncMovingToSyncPoint, 00090 DtMomSyncWaitingForRestOfFederation 00091 }; 00092 00093 struct DtMomNetHandle 00094 { 00095 MAKRti::DtNetU32 length; 00096 MAKRti::DtNetU32 value; 00097 }; 00098 00101 class DT_DLL_LRC DtMomNetParameter : public MAKRti::DtBaseMsg 00102 { 00103 public: 00104 00106 virtual ~DtMomNetParameter(); 00107 00109 DtMomNetParameter(); 00110 00112 DtMomNetParameter(const DtMomNetParameter& orig); 00113 00115 DtMomNetParameter(const char* netRepArg, int size, 00116 MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00117 00120 DtMomNetParameter(const DtPhvps& parameters, int index, 00121 bool useInternalBuffer=true); 00122 00124 00125 DtMomNetParameter(bool value); 00126 DtMomNetParameter(long value); 00127 DtMomNetParameter(unsigned long value); 00128 DtMomNetParameter(unsigned int value); 00129 DtMomNetParameter(int value); 00130 DtMomNetParameter(double value); 00131 DtMomNetParameter(char const * value); 00132 DtMomNetParameter(wchar_t const * value); 00133 DtMomNetParameter(DtAttributeHandleSet const & value); 00134 DtMomNetParameter(DtMomAttributeStateOptions value); 00135 DtMomNetParameter(DtMomFederateStates value); 00136 DtMomNetParameter(DtMomHandleList const & value); 00137 DtMomNetParameter(DtMomTallyList const & value); 00138 DtMomNetParameter(DtMomTimeManagerStates value); 00139 DtMomNetParameter(MAKRti::DtOrderType value); 00140 DtMomNetParameter(MAKRti::DtTransportType value); 00142 00143 #ifdef DtIFSPEC1516 00144 00146 00147 DtMomNetParameter(std::wstring const & value); 00148 DtMomNetParameter(std::vector<std::wstring> const & value); 00149 DtMomNetParameter(DtMomArgumentList const & value); 00150 //DtMomNetParameter(DtSyncPt const & value); 00151 DtMomNetParameter(rti1516::AttributeHandleSet const & value); 00152 DtMomNetParameter(rti1516::FederateHandleSet const & value); 00153 DtMomNetParameter(rti1516::LogicalTime const & value); 00154 DtMomNetParameter(rti1516::LogicalTimeInterval const & value); 00155 DtMomNetParameter(rti1516::ResignAction value); 00157 00158 #elif defined(DtIFSPEC1516E) 00159 00161 00162 DtMomNetParameter(std::wstring const & value); 00163 DtMomNetParameter(std::vector<std::wstring> const & value); 00164 DtMomNetParameter(DtMomArgumentList const & value); 00165 //DtMomNetParameter(DtSyncPt const & value); 00166 DtMomNetParameter(rti1516e::AttributeHandleSet const & value); 00167 DtMomNetParameter(rti1516e::FederateHandleSet const & value); 00168 DtMomNetParameter(rti1516e::LogicalTime const & value); 00169 DtMomNetParameter(rti1516e::LogicalTimeInterval const & value); 00170 DtMomNetParameter(rti1516e::ResignAction value); 00172 00173 #else 00174 00176 00177 DtMomNetParameter(MAKRti::DtString const & value); 00178 DtMomNetParameter(DtMomAlertTypes value); 00179 DtMomNetParameter(DtMomInitiatorOptions value); 00180 DtMomNetParameter(RTI::AttributeHandle * value); 00181 DtMomNetParameter(RTI::AttributeHandleSet const & value); 00182 DtMomNetParameter(RTI::AttributeHandleSet const * value); 00183 DtMomNetParameter(RTI::AttributeHandleValuePairSet const & value); 00184 DtMomNetParameter(RTI::Boolean value); 00185 DtMomNetParameter(RTI::EventRetractionHandle const & value); 00186 DtMomNetParameter(RTI::FederateAmbassador const * value); 00187 DtMomNetParameter(RTI::FederateAmbassadorPtr value); 00188 DtMomNetParameter(RTI::FederateHandleSet const & value); 00189 DtMomNetParameter(RTI::FedTime const & value); 00190 DtMomNetParameter(RTI::ParameterHandleValuePairSet const & value); 00191 DtMomNetParameter(RTI::Region const & value); 00192 DtMomNetParameter(RTI::Region const * value); 00193 DtMomNetParameter(RTI::Region** value); 00194 DtMomNetParameter(RTI::ResignAction value); 00196 #endif 00197 00199 00200 DtMomNetParameter& operator=(const DtMomNetParameter& orig); 00201 DtMomNetParameter& operator = (bool value); 00202 DtMomNetParameter& operator = (int value); 00203 DtMomNetParameter& operator = (unsigned int value); 00204 DtMomNetParameter& operator = (long value); 00205 DtMomNetParameter& operator = (unsigned long value); 00206 DtMomNetParameter& operator = (double value); 00207 DtMomNetParameter& operator = (char const * value); 00208 DtMomNetParameter& operator = (wchar_t const * value); 00209 DtMomNetParameter& operator = (DtAttributeHandleSet const & value); 00210 DtMomNetParameter& operator = (DtFederateHandleSet const & value); 00211 DtMomNetParameter& operator = (DtMomAttributeStateOptions value); 00212 DtMomNetParameter& operator = (DtMomFederateStates value); 00213 DtMomNetParameter& operator = (DtMomHandleList const & value); 00214 DtMomNetParameter& operator = (DtMomTallyList const & value); 00215 DtMomNetParameter& operator = (DtMomTimeManagerStates value); 00216 DtMomNetParameter& operator = (MAKRti::DtOrderType value); 00217 DtMomNetParameter& operator = (MAKRti::DtTransportType value); 00219 00220 #ifdef DtIFSPEC1516 00221 00223 00224 DtMomNetParameter& operator = (std::wstring const & value); 00225 DtMomNetParameter& operator = (std::vector<std::wstring> const & value); 00226 DtMomNetParameter& operator = (DtMomArgumentList const & value); 00227 //DtMomNetParameter& operator = (DtSyncPt const & value); 00228 DtMomNetParameter& operator = (rti1516::LogicalTime const & value); 00229 DtMomNetParameter& operator = (rti1516::LogicalTimeInterval const & value); 00230 DtMomNetParameter& operator = (rti1516::ResignAction value); 00232 00233 #elif defined(DtIFSPEC1516E) 00234 00235 00236 DtMomNetParameter& operator = (std::wstring const & value); 00237 DtMomNetParameter& operator = (std::vector<std::wstring> const & value); 00238 DtMomNetParameter& operator = (DtMomArgumentList const & value); 00239 //DtMomNetParameter& operator = (DtSyncPt const & value); 00240 DtMomNetParameter& operator = (rti1516e::LogicalTime const & value); 00241 DtMomNetParameter& operator = (rti1516e::LogicalTimeInterval const & value); 00242 DtMomNetParameter& operator = (rti1516e::ResignAction value); 00244 #else 00245 00247 00248 DtMomNetParameter& operator = (DtAhvps const & value); 00249 DtMomNetParameter& operator = (DtMomAlertTypes value); 00250 DtMomNetParameter& operator = (DtMomInitiatorOptions value); 00251 DtMomNetParameter& operator = (DtPhvps const & value); 00252 DtMomNetParameter& operator = (MAKRti::DtString const & value); 00253 DtMomNetParameter& operator = (RTI::FedTime const & value); 00254 DtMomNetParameter& operator = (RTI::FederateAmbassador const * value); 00255 DtMomNetParameter& operator = (RTI::FederateAmbassadorPtr value); 00256 DtMomNetParameter& operator = (RTI::EventRetractionHandle const & value); 00257 DtMomNetParameter& operator = (RTI::Region const & value); 00258 DtMomNetParameter& operator = (RTI::Region const * value); 00259 DtMomNetParameter& operator = (RTI::Region ** value); 00260 DtMomNetParameter& operator = (RTI::ResignAction value); 00262 #endif 00263 00264 00268 00269 virtual bool getValue(bool & value) const; 00270 virtual bool getValue(int & value) const; 00271 virtual bool getValue(unsigned int & value) const; 00272 virtual bool getValue(long & value) const; 00273 virtual bool getValue(unsigned long & value) const; 00274 virtual bool getValue(double & value) const; 00275 virtual bool getValue(DtAttributeHandleSet & value) const; 00276 virtual bool getValue(DtMomAttributeStateOptions & value) const; 00277 virtual bool getValue(DtMomFederateStates & value) const; 00278 virtual bool getValue(DtMomHandleList & value) const; 00279 virtual bool getValue(DtMomTallyList & value) const; 00280 virtual bool getValue(DtMomTimeManagerStates & value) const; 00281 virtual bool getValue(MAKRti::DtOrderType & value) const; 00282 virtual bool getValue(MAKRti::DtTransportType & value) const; 00284 00285 #ifdef DtIFSPEC1516 00286 00288 00289 virtual bool getValue(std::wstring & value) const; 00290 virtual bool getValue(std::vector<std::wstring> & value) const; 00291 virtual bool getValue(DtMomArgumentList & value) const; 00292 00293 virtual bool getValue(rti1516::LogicalTime & value) const; 00294 virtual bool getValue(rti1516::LogicalTimeInterval & value) const; 00295 virtual bool getValue(rti1516::ResignAction & value) const; 00297 00298 #elif defined(DtIFSPEC1516E) 00299 00300 00301 virtual bool getValue(std::wstring & value) const; 00302 virtual bool getValue(std::vector<std::wstring> & value) const; 00303 virtual bool getValue(DtMomArgumentList & value) const; 00304 00305 virtual bool getValue(rti1516e::LogicalTime & value) const; 00306 virtual bool getValue(rti1516e::LogicalTimeInterval & value) const; 00307 virtual bool getValue(rti1516e::ResignAction & value) const; 00309 00310 #else 00311 00313 00314 virtual bool getValue(DtMomAlertTypes & value) const; 00315 virtual bool getValue(DtMomInitiatorOptions & value) const; 00316 virtual bool getValue(MAKRti::DtString & value) const; 00317 00318 virtual bool getValue(RTI::FedTime & value) const; 00319 virtual bool getValue(RTI::ResignAction & value) const; 00321 00322 #endif 00323 00324 protected: 00325 00328 virtual void sizeChanged(int size); 00329 00330 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) 00331 00335 virtual unsigned long encodedWideStringLength(unsigned long valueLength, 00336 bool addPadding); 00337 00340 virtual unsigned long encodedLength(std::wstring const & value, bool addPadding); 00341 00346 virtual void* encodeWideString(void* destination, wchar_t const * source, 00347 bool addPadding); 00348 00355 virtual void* encodeWideString(void* destination, wchar_t const * source, 00356 unsigned long sourceLength, bool addPadding); 00357 00363 virtual void* encodeWideString(void* destination, std::wstring const & source, 00364 bool addPadding); 00365 00371 virtual void encodeWideString(wchar_t const * source, 00372 unsigned long sourceLength, bool addPadding); 00373 00377 virtual void encodeWideString(wchar_t const * source, bool addPadding); 00378 00382 virtual void encodeWideString(std::wstring const & source, bool addPadding); 00383 00392 virtual unsigned long decodeWideString(char const * source, 00393 unsigned long sourceLength, std::wstring & value) const; 00394 #endif 00395 00398 #if ( __solaris__ ) 00399 public: 00400 #else 00401 private: 00402 #endif 00403 }; 00404 00409 class DT_DLL_LRC DtMomNetHandleParameter : public DtMomNetParameter 00410 { 00411 public: 00412 00413 virtual ~DtMomNetHandleParameter(); 00414 00416 DtMomNetHandleParameter(); 00417 00419 DtMomNetHandleParameter(const DtMomNetHandleParameter& orig); 00420 00422 DtMomNetHandleParameter(const char* netRepArg, int size, 00423 MAKRti::DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00424 00427 DtMomNetHandleParameter(const DtPhvps& parameters, int index, 00428 bool useInternalBuffer=true); 00429 00431 DtMomNetHandleParameter(DtHandle value); 00432 00433 00435 DtMomNetHandleParameter& operator=(const DtMomNetHandleParameter& orig); 00436 DtMomNetHandleParameter& operator = (DtHandle value); 00437 00439 virtual bool getValue(DtHandle & value) const; 00440 00441 }; 00442 00443 #endif //! DtMOM 00444 #endif //! DtMomNetParameter_H_