![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef fomMapper_H_ 00007 #define fomMapper_H_ 00008 00009 00010 #if DtHLA 00011 00012 00013 #include "hostStructs.h" 00014 #include "rtiCompatibility.h" 00015 00016 #include <vlutil/vlHashlist.h> 00017 00018 class DtExerciseConn; 00019 class DtStateDecoderFactory; 00020 class DtStateEncoderFactory; 00021 class DtInteractionDecoderFactory; 00022 class DtInteractionEncoderFactory; 00023 class DtHlaObjectFactory; 00024 class DtInteractionFactory; 00025 class DtInteraction; 00026 00033 class DT_DLL_VL DtFomMapper 00034 { 00035 public: 00036 00039 typedef char* (*DtInteractionClassChooser)( 00040 DtExerciseConn* exConn, const DtInteraction& inter); 00041 00045 typedef char* (*DtObjectClassChooser)( 00046 const char* vrlinkClassName, DtExerciseConn* conn, void* usr); 00047 00048 public: 00049 00052 DtFomMapper(); 00053 00055 virtual ~DtFomMapper(); 00056 00059 virtual DtStateDecoderFactory* setStateDecoderFactory( 00060 DtStateDecoderFactory* fact); 00061 virtual DtStateDecoderFactory* stateDecoderFactory(); 00062 00065 virtual DtStateEncoderFactory* setStateEncoderFactory( 00066 DtStateEncoderFactory* fact); 00067 virtual DtStateEncoderFactory* stateEncoderFactory(); 00068 00071 virtual DtInteractionDecoderFactory* setInteractionDecoderFactory( 00072 DtInteractionDecoderFactory* fact); 00073 virtual DtInteractionDecoderFactory* interactionDecoderFactory(); 00074 00077 virtual DtInteractionEncoderFactory* setInteractionEncoderFactory( 00078 DtInteractionEncoderFactory* fact); 00079 virtual DtInteractionEncoderFactory* interactionEncoderFactory(); 00080 00083 virtual DtHlaObjectFactory* setHlaObjectFactory( 00084 DtHlaObjectFactory* fact); 00085 virtual DtHlaObjectFactory* hlaObjectFactory(); 00086 00089 virtual DtInteractionFactory* setInteractionFactory( 00090 DtInteractionFactory* fact); 00091 virtual DtInteractionFactory* interactionFactory(); 00092 00097 virtual void setObjectClassToChoose( 00098 const char* vrlinkClassName, const char* fomClassName); 00099 virtual void setObjectClassChooser( 00100 const char* vrlinkClassName, DtObjectClassChooser chooser); 00101 00107 virtual char* chooseObjectClass( 00108 const char* vrlinkClassName, void* usr = NULL) const; 00109 00114 virtual void setInteractionClassToChoose( 00115 const char* vrlinkClassName, const char* fomClassName); 00116 virtual void setInteractionClassChooser( 00117 const char* vrlinkClassName, DtInteractionClassChooser chooser); 00118 00121 virtual char* chooseInteractionClass(const DtInteraction& inter) const; 00122 00130 virtual void setInteractionClasses(const char* vrlinkClassName, 00131 const DtList& classes); 00132 virtual DtList* interactionClasses(const char* vrlinkClassName); 00133 00137 virtual void setInteractionClass(const char* vrlinkClassName, 00138 const char* fomClassName); 00139 00148 virtual void setObjectClassNames(const char* vrlinkClassName, 00149 const DtList& classes); 00150 virtual DtList* objectClassNames(const char* vrlinkClassName); 00151 00159 virtual DtList* objectClassHandles(const char* vrlinkClassName); 00160 00164 virtual void setObjectClass(const char* vrlinkClassName, 00165 const char* fomClassName); 00166 00169 virtual void init(DtExerciseConn* conn) = 0; 00170 00172 virtual void setVersion(double vers); 00173 virtual double version() const; 00174 00176 virtual void setRevision(int val); 00177 00179 virtual int revision() const; 00180 00184 virtual DtObjectClassChooser objectClassChooser( 00185 const char* vrlinkClassName) const; 00186 00190 virtual DtInteractionClassChooser interactionClassChooser( 00191 const char* vrlinkClassName) const; 00192 00193 protected: 00195 DtFomMapper(const DtFomMapper& orig); 00196 00198 DtFomMapper& operator=(const DtFomMapper& orig); 00199 00200 protected: 00201 00202 DtExerciseConn* myExConn; 00203 00205 DtStateDecoderFactory* myDecFact; 00206 DtStateEncoderFactory* myEncFact; 00207 DtInteractionDecoderFactory* myInterDecFact; 00208 DtInteractionEncoderFactory* myInterEncFact; 00209 DtHlaObjectFactory* myObjFact; 00210 DtInteractionFactory* myInterFact; 00211 00215 DtHashlist myIntMapList; 00216 00221 DtHashlist myObjMapList; 00222 00226 DtHashlist myObjChooserList; 00227 00230 DtHashlist mySimpleObjChooserList; 00231 00235 DtHashlist myInterChooserList; 00236 00239 DtHashlist mySimpleInterChooserList; 00240 00243 DtList myObjHandleList; 00244 00247 DtList myEmptyList; 00248 00249 protected: 00250 double myVersion; 00251 int myRevision; 00252 00253 }; 00254 00255 #endif 00256 #endif 00257