![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: signalMessageParams.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00012 00013 #ifndef DtVrfSignalMessageParams_h 00014 #define DtVrfSignalMessageParams_h 00015 00016 #include "vrfmsgs/vrfmsgsDefines.h" 00017 00018 #include <string> 00019 #include <map> 00020 00021 class DT_DLL_vrfmsgs DtVrfSignalMessageParamField 00022 { 00023 public: 00024 DtVrfSignalMessageParamField(const char* pName=NULL); 00025 virtual ~DtVrfSignalMessageParamField(); 00026 00027 DtVrfSignalMessageParamField(const DtVrfSignalMessageParamField& orig); 00028 const DtVrfSignalMessageParamField& operator=(const DtVrfSignalMessageParamField& orig); 00029 00030 virtual DtVrfSignalMessageParamField* clone() const; 00031 00032 const std::string& name() const; 00033 void setName(const std::string& sName); 00034 00035 protected: 00036 00037 std::string myName; 00038 }; 00039 00040 template <class T> 00041 class DtVrfSignalMessageParamFieldImpl : public DtVrfSignalMessageParamField 00042 { 00043 public: 00044 DtVrfSignalMessageParamFieldImpl(const char* pName=NULL); 00045 virtual ~DtVrfSignalMessageParamFieldImpl(); 00046 00047 DtVrfSignalMessageParamFieldImpl(const DtVrfSignalMessageParamFieldImpl<T>& orig); 00048 const DtVrfSignalMessageParamFieldImpl<T>& operator=(const DtVrfSignalMessageParamFieldImpl<T>& orig); 00049 00050 virtual DtVrfSignalMessageParamField* clone() const; 00051 00052 const T& value() const; 00053 void setValue(const T& val); 00054 00055 protected: 00056 00057 T myValue; 00058 }; 00059 00061 class DT_DLL_vrfmsgs DtVrfSignalMessageParams 00062 { 00063 public: 00064 00065 typedef std::map<std::string, DtVrfSignalMessageParamField*> FieldMap; 00066 00067 public: 00069 DtVrfSignalMessageParams(); 00070 00072 virtual ~DtVrfSignalMessageParams(); 00073 00075 DtVrfSignalMessageParams(const DtVrfSignalMessageParams& orig); 00076 00078 const DtVrfSignalMessageParams& operator=(const DtVrfSignalMessageParams& orig); 00079 00081 virtual DtVrfSignalMessageParams* clone() const; 00082 00083 public: 00084 00086 void addExtendedField(const DtVrfSignalMessageParamField& field); 00087 00089 virtual void clearExtensions(); 00090 00092 const DtVrfSignalMessageParamField* extendedField(const std::string& sName) const; 00093 00096 const DtVrfSignalMessageParams::FieldMap& extendedFields() const; 00097 DtVrfSignalMessageParams::FieldMap& extendedFields(); 00099 00100 protected: 00101 00102 FieldMap myExtendedFields; 00103 }; 00104 00105 inline const std::string& DtVrfSignalMessageParamField::name() const 00106 { 00107 return (myName); 00108 } 00109 00110 inline void DtVrfSignalMessageParamField::setName(const std::string& sName) 00111 { 00112 myName = sName; 00113 } 00114 00115 #include "vrfmsgs/signalMessageParams.inl" 00116 00117 00118 #endif