Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / tools / assoc_mem / attribute.h
blobf59e8902ca3627b2b0f7c15431bce1fdb17f0186
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #ifndef NL_ATTRIBUTE_H_
18 #define NL_ATTRIBUTE_H_
20 #include <string>
22 class IAttribute
24 private:
25 std::string _Name;
26 public:
27 IAttribute(std::string);
28 std::string &getName();
29 void setName(std::string);
32 template<class T> class CAttribute : public IAttribute
34 private:
35 T _Value;
36 public:
37 CAttribute();
38 CAttribute(std::string);
39 CAttribute(std::string,T);
40 T &getValue();
41 void setValue(T &);
44 template<class T> CAttribute<T>::CAttribute() : IAttribute("<unnanamed>")
48 template<class T> CAttribute<T>::CAttribute(std::string name) : IAttribute(name)
52 template<class T> CAttribute<T>::CAttribute(std::string name, T value) : IAttribute(name)
54 _Value = value;
57 template<class T> T &CAttribute<T>::getValue()
59 return _Value;
61 template<class T> void CAttribute<T>::setValue(T &value)
63 _Value = value;
66 #endif