![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00008 #ifndef DtStateDecoderFactory_H_ 00009 #define DtStateDecoderFactory_H_ 00010 00011 #if DtHLA 00012 00013 #include "hStateDecoder.h" 00014 #include <vlutil/vlMachineTypes.h> 00015 #include <map> 00016 00017 class DtFom; 00018 00023 class DT_DLL_VL DtStateDecoderFactory 00024 { 00025 public: 00026 00028 DtStateDecoderFactory(DtExerciseConn* exConn); 00029 00031 DtStateDecoderFactory(DtFom* fom); 00032 00034 virtual ~DtStateDecoderFactory(); 00035 00036 private: 00037 00039 DtStateDecoderFactory(const DtStateDecoderFactory& orig); 00040 00042 DtStateDecoderFactory& operator=(const DtStateDecoderFactory& orig); 00043 00044 public: 00045 00049 virtual DtHlaStateDecoder* createDecoder(RTI::ObjectClassHandle hand); 00050 00056 virtual DtHlaStateDecoder* addDecoder( 00057 RTI::ObjectClassHandle hand, 00058 DtHlaStateDecoder* decoder); 00059 00067 virtual void addAttributeDecoder( 00068 RTI::ObjectClassHandle classHand, 00069 RTI::AttributeHandle attrHand, 00070 DtHlaStateDecoder::DtAttributeDecoder decoder, 00071 bool applyToSubclasses = true); 00072 00074 void addAttributeDecoder( 00075 char* className, 00076 RTI::AttributeHandle attrHand, 00077 DtHlaStateDecoder::DtAttributeDecoder func, 00078 bool applyToSubclasses = true); 00079 00081 void addAttributeDecoder( 00082 RTI::ObjectClassHandle classHand, 00083 char* attrName, 00084 DtHlaStateDecoder::DtAttributeDecoder func, 00085 bool applyToSubclasses = true); 00086 00088 void addAttributeDecoder( 00089 char* className, 00090 char* attrName, 00091 DtHlaStateDecoder::DtAttributeDecoder func, 00092 bool applyToSubclasses = true); 00093 00103 virtual DtHlaStateDecoder* decoder(RTI::ObjectClassHandle hand, 00104 bool copyBase = false); 00105 00106 protected: 00107 00108 typedef std::map<RTI::ObjectClassHandle, DtHlaStateDecoder*> ObjectClassHandleToStateDecoderMap; 00109 ObjectClassHandleToStateDecoderMap myProtos; 00110 00111 DtFom* myFom; 00112 }; 00113 00114 #endif 00115 #endif 00116