![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00008 00009 #ifndef DtStateEncoderFactory_H_ 00010 #define DtStateEncoderFactory_H_ 00011 00012 #if DtHLA 00013 00014 #include "hStateEncoder.h" 00015 #include <vlutil/vlMachineTypes.h> 00016 #include <map> 00017 00018 class DtFom; 00019 00024 class DT_DLL_VL DtStateEncoderFactory 00025 { 00026 public: 00027 00029 DtStateEncoderFactory(DtExerciseConn* exConn); 00030 00032 DtStateEncoderFactory(DtFom* fom); 00033 00035 virtual ~DtStateEncoderFactory(); 00036 00037 private: 00038 00040 DtStateEncoderFactory(const DtStateEncoderFactory& orig); 00041 00043 DtStateEncoderFactory& operator=(const DtStateEncoderFactory& orig); 00044 00045 public: 00046 00050 virtual DtHlaStateEncoder* createEncoder(RTI::ObjectClassHandle hand); 00051 00057 virtual DtHlaStateEncoder* addEncoder( 00058 RTI::ObjectClassHandle hand, 00059 DtHlaStateEncoder* encoder); 00060 00068 virtual void addAttributeEncoder( 00069 RTI::ObjectClassHandle classHand, 00070 RTI::AttributeHandle attrHand, 00071 DtHlaStateEncoder::DtAttributeEncoder encoder, 00072 bool applyToSubclasses = true); 00073 00075 virtual void addAttributeEncoder( 00076 char* className, 00077 RTI::AttributeHandle attrHand, 00078 DtHlaStateEncoder::DtAttributeEncoder func, 00079 bool applyToSubclasses = true); 00080 00082 virtual void addAttributeEncoder( 00083 RTI::ObjectClassHandle classHand, 00084 char* attrName, 00085 DtHlaStateEncoder::DtAttributeEncoder func, 00086 bool applyToSubclasses = true); 00087 00089 virtual void addAttributeEncoder( 00090 char* className, 00091 char* attrName, 00092 DtHlaStateEncoder::DtAttributeEncoder func, 00093 bool applyToSubclasses = true); 00094 00102 virtual void addAttributeChecker( 00103 RTI::ObjectClassHandle classHand, 00104 RTI::AttributeHandle attrHand, 00105 DtHlaStateEncoder::DtAttributeChecker encoder, 00106 bool applyToSubclasses = true); 00107 00109 virtual void addAttributeChecker( 00110 char* className, 00111 RTI::AttributeHandle attrHand, 00112 DtHlaStateEncoder::DtAttributeChecker func, 00113 bool applyToSubclasses = true); 00114 00116 virtual void addAttributeChecker( 00117 RTI::ObjectClassHandle classHand, 00118 char* attrName, 00119 DtHlaStateEncoder::DtAttributeChecker func, 00120 bool applyToSubclasses = true); 00121 00123 virtual void addAttributeChecker( 00124 char* className, 00125 char* attrName, 00126 DtHlaStateEncoder::DtAttributeChecker func, 00127 bool applyToSubclasses = true); 00128 00138 virtual DtHlaStateEncoder* encoder(RTI::ObjectClassHandle hand, 00139 bool copyBase = false); 00140 00141 protected: 00142 00143 typedef std::map<RTI::ObjectClassHandle, DtHlaStateEncoder*> ObjectClassHandleToEncoderMap; 00144 ObjectClassHandleToEncoderMap myProtos; 00145 00146 DtFom* myFom; 00147 }; 00148 00149 #endif 00150 #endif 00151