![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00009 #ifndef DtHlaObjectFactory_H_ 00010 #define DtHlaObjectFactory_H_ 00011 00012 #if DtHLA 00013 00014 00015 #include "hlaObj.h" 00016 #include <map> 00017 00020 class DT_DLL_VL DtHlaObjectFactory 00021 { 00022 public: 00023 00025 typedef DtHlaObject* (*DtHlaObjectCreator) (DtExerciseConn* conn, 00026 #if DtHLA_1516 00027 RTI::ObjectInstanceHandle id, 00028 #else 00029 RTI::ObjectHandle id, 00030 #endif 00031 const char* name, DtObjClassDesc& cDesc, bool reflecting); 00032 00033 public: 00034 00036 DtHlaObjectFactory(DtExerciseConn* conn); 00037 00039 virtual ~DtHlaObjectFactory(); 00040 00041 private: 00042 00044 DtHlaObjectFactory(const DtHlaObjectFactory& orig); 00045 00047 DtHlaObjectFactory& operator=(const DtHlaObjectFactory& orig); 00048 00049 public: 00050 00054 virtual DtHlaObject* createHlaObject( 00055 RTI::ObjectClassHandle handle, 00056 #if DtHLA_1516 00057 RTI::ObjectInstanceHandle id, 00058 #else 00059 RTI::ObjectHandle id, 00060 #endif 00061 const char* name, 00062 bool reflecting); 00068 virtual DtHlaObjectCreator addCreator(RTI::ObjectClassHandle handle, 00069 DtHlaObjectCreator creator); 00070 00072 virtual DtHlaObjectCreator creator(RTI::ObjectClassHandle handle); 00073 00074 protected: 00075 00077 typedef std::map<RTI::ObjectClassHandle, DtHlaObjectCreator> ObjClassHandleToCreatorMap; 00078 ObjClassHandleToCreatorMap myCreators; 00079 00080 DtExerciseConn* myConn; 00081 }; 00082 00083 #endif 00084 #endif 00085