MAK RTIspy API Documentation for HLA Evolved
momNetParam.h
Go to the documentation of this file.
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_

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)