![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: fedWrapChain.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtFedAmbWrapperChain_H_ 00013 #define DtFedAmbWrapperChain_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include <vlutil/vlHashlist.h> 00017 #if defined(DtIFSPEC1516) 00018 #include <RTI/Handle.h> 00019 #include <RTI/Exception.h> 00020 #include <RTI/FederateAmbassador.h> 00021 #elif defined(DtIFSPEC1516E) 00022 #include <RTI/Handle.h> 00023 #include <RTI/Exception.h> 00024 #include <RTI/FederateAmbassador.h> 00025 #else 00026 #ifdef DtIFSPEC13DLC 00027 #include "RTI13.h" 00028 #define RTI rti13 00029 #else 00030 #include "RTI.hh" 00031 #endif 00032 #endif 00033 00034 class DtFedAmbWrapper; 00035 00044 00045 class DT_DLL_LRC DtFedAmbWrapperChain 00046 { 00047 public: 00048 00049 DtFedAmbWrapperChain(); 00050 virtual ~DtFedAmbWrapperChain(); 00051 00053 #ifdef DtIFSPEC1516 00054 virtual void init (rti1516::FederateAmbassador* theBase); 00055 #elif defined(DtIFSPEC1516E) 00056 virtual void init (rti1516e::FederateAmbassador* theBase); 00057 #else 00058 virtual void init (RTI::FederateAmbassador* theBase); 00059 #endif 00060 00062 virtual void reset(); 00063 00065 #ifdef DtIFSPEC1516 00066 virtual rti1516::FederateAmbassador* first() const; 00067 #elif defined(DtIFSPEC1516E) 00068 virtual rti1516e::FederateAmbassador* first() const; 00069 #else 00070 virtual RTI::FederateAmbassador* first() const; 00071 #endif 00072 00074 virtual void addWrapper(MAKRti::DtString const& name, DtFedAmbWrapper* fedWrap); 00075 virtual DtFedAmbWrapper* removeWrapper(MAKRti::DtString const& name); 00076 00081 virtual bool addWrapperAtFront(MAKRti::DtString const& name, DtFedAmbWrapper* fedWrap); 00082 00083 protected: 00084 00085 #ifdef DtIFSPEC1516 00086 rti1516::FederateAmbassador* myBase; 00087 rti1516::FederateAmbassador* myFirst; 00088 #elif defined(DtIFSPEC1516E) 00089 rti1516e::FederateAmbassador* myBase; 00090 rti1516e::FederateAmbassador* myFirst; 00091 #else 00092 RTI::FederateAmbassador* myBase; 00093 RTI::FederateAmbassador* myFirst; 00094 #endif 00095 00096 MAKRti::DtHashList myWrappers; 00098 bool myFrontTaken; 00099 }; 00100 00101 #ifdef DtIFSPEC1516 00102 inline rti1516::FederateAmbassador* DtFedAmbWrapperChain::first() const 00103 { 00104 return myFirst; 00105 } 00106 #elif defined(DtIFSPEC1516E) 00107 inline rti1516e::FederateAmbassador* DtFedAmbWrapperChain::first() const 00108 { 00109 return myFirst; 00110 } 00111 #else 00112 inline RTI::FederateAmbassador* DtFedAmbWrapperChain::first() const 00113 { 00114 return myFirst; 00115 } 00116 #endif 00117 00118 #endif