![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 //File RTI13.h 00002 00003 #ifndef RTI13_h 00004 #define RTI13_h 00005 00006 // Identification of the API version number. 00007 #define HLA_SPECIFICATION_NAME "1.3" 00008 #define HLA_API_MAJOR_VERSION 7 00009 #define HLA_API_MINOR_VERSION 0 00010 00011 #if defined(_WIN32) 00012 #if defined(_MSC_VER) && defined(RTI_DISABLE_WARNINGS) 00013 // disable warning about exceptions not being part of a method's signature 00014 #pragma warning(disable: 4290) 00015 // disable warnings about a "dllexport" class using a regular class 00016 #pragma warning(disable: 4251) 00017 #endif 00018 // 00019 // On Windows, BUILDING_RTI should be defined only when compiling 00020 // the RTI DLL (i.e. by RTI developers). BUILDING_FEDTIME should 00021 // be defined only when building a libfedtime DLL. STATIC_RTI 00022 // should be defined when building a static (non-DLL) RTI library, 00023 // or when building a federate that wants to statically link to 00024 // an RTI library. STATIC_FEDTIME should be defined when building 00025 // a static (non-DLL) fedtime library, or when building a federate 00026 // that wants to statically link to a fedtime library. 00027 // 00028 #if defined(STATIC_RTI) 00029 #define RTI_EXPORT 00030 #else 00031 #if defined(BUILDING_RTI) 00032 // define the proper qualifiers to import/export symbols from/to DLL 00033 #define RTI_EXPORT __declspec(dllexport) 00034 #else // !BUILDING_RTI 00035 #define RTI_EXPORT __declspec(dllimport) 00036 #endif // BUILDING_RTI 00037 #endif // STATIC_RTI 00038 00039 #if defined(STATIC_FEDTIME) 00040 #define RTI_EXPORT_FEDTIME 00041 #else 00042 #if defined(BUILDING_FEDTIME) 00043 // define the proper qualifiers to import/export symbols from/to DLL 00044 #define RTI_EXPORT_FEDTIME __declspec(dllexport) 00045 #else // !BUILDING_FEDTIME 00046 #define RTI_EXPORT_FEDTIME __declspec(dllimport) 00047 #endif // BUILDING_FEDTIME 00048 #endif // STATIC_FEDTIME 00049 00050 #else // !WIN32 00051 // no special qualfifers are necessary on non-WIN32 platforms 00052 #define RTI_EXPORT 00053 #define RTI_EXPORT_FEDTIME 00054 #endif 00055 00056 // 00057 // On platforms that support both the standard C++ version of 00058 // ostream (std::ostream), and the legacy ostream in the global 00059 // namespace, an RTI library will contain two versions of each 00060 // RTI function that relies on the ostream class. This allows 00061 // federates to work with either new or old ostreams. When a 00062 // federate includes RTI header files, it should define 00063 // RTI_USES_STD_FSTREAM if and only if it is using std::ostream, 00064 // and therefore wishes to use the std::ostream versions of these 00065 // RTI functions. 00066 // 00067 #ifdef RTI_USES_STD_FSTREAM 00068 #include <fstream> 00069 #define RTI_STD std 00070 #else 00071 #include <fstream.h> 00072 #define RTI_STD /* nothing */ 00073 #endif 00074 00075 #include "baseTypes13.h" 00076 #include "RTItypes13.h" 00077 00078 namespace rti13 00079 { 00080 struct RTIambPrivateRefs; 00081 struct RTIambPrivateData; 00082 00083 // Vendor-specific name and version of the RTI implementation 00084 const char *RTIname(); 00085 const char *RTIversion(); // identical to MOM attributes of same name 00086 00087 class RTI_EXPORT RTIambassador { 00088 public: 00089 #include "RTIambServices13.h" 00090 RTIambPrivateData* privateData; 00091 private: 00092 RTIambPrivateRefs* privateRefs; 00093 }; 00094 00095 class RTI_EXPORT FederateAmbassador { 00096 public: 00097 #include "federateAmbServices13.h" 00098 }; 00099 } // End of namespace rti13 00100 00101 RTI_STD::ostream RTI_EXPORT & 00102 operator << (RTI_STD::ostream &, rti13::Exception *); 00103 00104 RTI_STD::ostream RTI_EXPORT & 00105 operator << (RTI_STD::ostream &, rti13::Exception const &); 00106 00107 RTI_STD::ostream RTI_EXPORT & 00108 operator << (RTI_STD::ostream &, const rti13::FedTime &); 00109 00110 #endif // RTI13_h