![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef lromMapper_H_ 00007 #define lromMapper_H_ 00008 00009 00010 #if DtTENA 00011 00012 00013 #include "tMessageInterface.h" 00014 #include "tObjectInterface.h" 00015 #include <vlutil/vlMachineTypes.h> 00016 00017 #include <map> 00018 #include <vector> 00019 00023 00024 class DT_DLL_VL DtString; 00025 class DT_DLL_VL DtExerciseConn; 00026 00029 class DT_DLL_VL DtLromMapper 00030 { 00031 public: 00035 typedef const DtString& (*DtObjectInterfaceChooser)( 00036 const DtString& vrlinkClassName, void* usr); 00037 00038 typedef const DtString& (*DtMessageInterfaceChooser)( 00039 const DtString& vrlinkClassName, void* usr); 00040 00041 public: 00043 DtLromMapper(); 00044 00046 virtual ~DtLromMapper(); 00047 00048 private: 00050 DtLromMapper(const DtLromMapper& orig); 00051 00053 DtLromMapper& operator=(const DtLromMapper& orig); 00054 00055 public: 00057 virtual void init(DtExerciseConn* exConn) = 0; 00058 00060 virtual DtMessageInterface* messageInterface(const DtString& ifName) = 0; 00061 00063 virtual DtObjectInterface* objectInterface(const DtString& ifName) = 0; 00064 00069 virtual void setObjectInterfaceClassToChoose( 00070 const DtString& vrlinkClassName, const DtString& interfaceName); 00071 00075 virtual void setMessageInterfaceClassToChoose( 00076 const DtString& vrlinkClassName, const DtString& interfaceName); 00077 00082 virtual void setObjectInterfaceClassChooser( 00083 const DtString& vrlinkClassName, DtObjectInterfaceChooser chooser); 00084 00088 virtual void setMessageInterfaceClassChooser( 00089 const DtString& vrlinkClassName, DtMessageInterfaceChooser chooser); 00090 00096 virtual const DtString& chooseObjectInterfaceClass(const DtString& vrlinkClassName, 00097 void* usr = NULL) const; 00098 00101 virtual const DtString& chooseMessageInterfaceClass(const DtString& vrlinkClassName, 00102 void* usr = NULL) const; 00103 00106 DtLromMapper::DtObjectInterfaceChooser objectInterfaceClassChooser( 00107 const DtString& vrlinkClassName) const; 00108 00112 DtLromMapper::DtMessageInterfaceChooser messageInterfaceClassChooser( 00113 const DtString& vrlinkClassName) const; 00114 00117 virtual void setObjectInterfaceClassNames(const DtString& vrlinkClassName, 00118 const std::vector<DtString>& classes); 00119 00122 virtual const std::vector<DtString>& objectInterfaceClassNames( 00123 const DtString& vrlinkClassName); 00124 00128 virtual void setObjectInterfaceClass(const DtString& vrlinkClassName, 00129 const DtString& fomClassName); 00130 00133 virtual void setMessageInterfaceClasses(const DtString& vrlinkClassName, 00134 const std::vector<DtString>& classes); 00135 00139 virtual const std::vector<DtString>& messageInterfaceClasses( 00140 const DtString& vrlinkClassName); 00141 00145 virtual void setMessageInterfaceClass(const DtString& vrlinkClassName, 00146 const DtString& fomClassName); 00147 00148 00149 protected: 00150 std::map<DtString, DtString> mySimpleObjectInterfaceChooserList; 00151 std::map<DtString, DtObjectInterfaceChooser> myObjectInterfaceChooserList; 00152 std::map<DtString, std::vector<DtString> > myObjectInterfaceMapList; 00153 00154 std::map<DtString, DtString> mySimpleMessageInterfaceChooserList; 00155 std::map<DtString, DtMessageInterfaceChooser> myMessageInterfaceChooserList; 00156 std::map<DtString, std::vector<DtString> > myMessageInterfaceMapList; 00157 }; 00158 00159 00160 #endif 00161 #endif 00162 00163 00164