VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/signalMessageParams.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)