rearranged Resource class
This commit is contained in:
parent
9548e4bf50
commit
96005a8feb
1 changed files with 36 additions and 35 deletions
|
@ -1,5 +1,5 @@
|
||||||
// Resource.hh
|
// Resource.hh
|
||||||
// Copyright (c) 2002 Henrik Kinnunen (fluxgen@linuxmail.org)
|
// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen(at)users.sourceforge.net)
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
// copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Resource.hh,v 1.10 2003/04/25 11:40:58 fluxgen Exp $
|
// $Id: Resource.hh,v 1.11 2003/05/07 11:32:42 fluxgen Exp $
|
||||||
|
|
||||||
#ifndef RESOURCE_HH
|
#ifndef RESOURCE_HH
|
||||||
#define RESOURCE_HH
|
#define RESOURCE_HH
|
||||||
|
@ -56,40 +56,8 @@ private:
|
||||||
std::string m_altname; ///< alternative name
|
std::string m_altname; ///< alternative name
|
||||||
};
|
};
|
||||||
|
|
||||||
class ResourceManager;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Real resource class
|
|
||||||
*/
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class Resource:public Resource_base
|
class Resource;
|
||||||
{
|
|
||||||
public:
|
|
||||||
Resource(ResourceManager &rm, T val,
|
|
||||||
const std::string &name, const std::string &altname):
|
|
||||||
Resource_base(name, altname),
|
|
||||||
m_value(val), m_defaultval(val),
|
|
||||||
m_rm(rm)
|
|
||||||
{
|
|
||||||
m_rm.addResource(*this); // add this to resource handler
|
|
||||||
}
|
|
||||||
virtual ~Resource() {
|
|
||||||
m_rm.removeResource(*this); // remove this from resource handler
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void setDefaultValue() { m_value = m_defaultval; }
|
|
||||||
void setFromString(const char *strval);
|
|
||||||
inline Resource<T>& operator = (const T& newvalue) { m_value = newvalue; return *this;}
|
|
||||||
|
|
||||||
std::string getString();
|
|
||||||
inline T& operator*() { return m_value; }
|
|
||||||
inline const T& operator*() const { return m_value; }
|
|
||||||
inline T *operator->() { return &m_value; }
|
|
||||||
inline const T *operator->() const { return &m_value; }
|
|
||||||
private:
|
|
||||||
T m_value, m_defaultval;
|
|
||||||
ResourceManager &m_rm;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ResourceManager
|
class ResourceManager
|
||||||
{
|
{
|
||||||
|
@ -129,4 +97,37 @@ private:
|
||||||
ResourceList m_resourcelist;
|
ResourceList m_resourcelist;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Real resource class
|
||||||
|
*/
|
||||||
|
template <typename T>
|
||||||
|
class Resource:public Resource_base
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Resource(ResourceManager &rm, T val,
|
||||||
|
const std::string &name, const std::string &altname):
|
||||||
|
Resource_base(name, altname),
|
||||||
|
m_value(val), m_defaultval(val),
|
||||||
|
m_rm(rm)
|
||||||
|
{
|
||||||
|
m_rm.addResource(*this); // add this to resource handler
|
||||||
|
}
|
||||||
|
virtual ~Resource() {
|
||||||
|
m_rm.removeResource(*this); // remove this from resource handler
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void setDefaultValue() { m_value = m_defaultval; }
|
||||||
|
void setFromString(const char *strval);
|
||||||
|
inline Resource<T>& operator = (const T& newvalue) { m_value = newvalue; return *this;}
|
||||||
|
|
||||||
|
std::string getString();
|
||||||
|
inline T& operator*() { return m_value; }
|
||||||
|
inline const T& operator*() const { return m_value; }
|
||||||
|
inline T *operator->() { return &m_value; }
|
||||||
|
inline const T *operator->() const { return &m_value; }
|
||||||
|
private:
|
||||||
|
T m_value, m_defaultval;
|
||||||
|
ResourceManager &m_rm;
|
||||||
|
};
|
||||||
|
|
||||||
#endif //_RESOURCE_HH_
|
#endif //_RESOURCE_HH_
|
||||||
|
|
Loading…
Reference in a new issue