#ifndef COOLATTR_H #define COOLATTR_H class CoolAttrBase{ public: CoolAttrBase(){}; CoolAttrBase(const std::string name){setName(name);}; CoolAttrBase(const char* name){setName(name);}; virtual ~CoolAttrBase(){}; std::string getName(void) const {return m_name;}; void setName(const std::string name){m_name = name.c_str();}; void setName(const char* name){m_name = name;}; private: std::string m_name; }; template class CoolAttr : public CoolAttrBase{ public: CoolAttr(){}; CoolAttr(const std::string name):CoolAttrBase(name){}; CoolAttr(const char* name):CoolAttrBase(name){}; ~CoolAttr(){}; dataType getType(void) const {return (dataType)0;}; dataType getAttr(void) const {return attribute;}; void setAttr(const cool::IObject& o) {attribute = o.payloadValue(m_name.c_str());}; private: dataType attribute; }; #endif