![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtInteractionFactory_H_ 00007 #define DtInteractionFactory_H_ 00008 00013 00014 #if DtHLA 00015 00016 00017 #include <vlutil/vlMachineTypes.h> 00018 #include "rtiNamespace.h" 00019 #include <map> 00020 00021 00022 class DT_DLL_VL DtInteraction; 00023 class DT_DLL_VL DtExerciseConn; 00024 class DT_DLL_VL DtInterClassDesc; 00025 00029 class DT_DLL_VL DtInteractionFactory 00030 { 00031 public: 00032 00034 typedef DtInteraction* (*DtInteractionCreator)(); 00035 00036 public: 00037 00039 DtInteractionFactory(DtExerciseConn* exConn); 00040 00042 virtual ~DtInteractionFactory(); 00043 00047 virtual DtInteraction* createInteraction( 00048 RTI::InteractionClassHandle handle, 00049 #if DtHLA_1516 00050 const RTI::ParameterHandleValueMap& pairMap); 00051 #else 00052 const RTI::ParameterHandleValuePairSet& pairSet); 00053 #endif 00054 00061 virtual DtInteractionCreator addCreator( 00062 RTI::InteractionClassHandle handle, 00063 DtInteractionCreator creator); 00064 virtual DtInteractionCreator addCreator( 00065 const char* className, 00066 DtInteractionCreator creator); 00067 00068 virtual DtInteractionCreator creator(RTI::InteractionClassHandle handle); 00069 00070 protected: 00071 00073 DtInteractionFactory(const DtInteractionFactory& orig); 00074 00076 DtInteractionFactory& operator=(const DtInteractionFactory& orig); 00077 00078 protected: 00079 00080 typedef std::map<RTI::InteractionClassHandle, DtInteractionCreator> 00081 InterClassHandleToCreatorMap; 00082 00083 InterClassHandleToCreatorMap myCreators; 00084 00085 DtExerciseConn* myExConn; 00086 }; 00087 00088 #endif 00089 #endif 00090