22 #ifndef FIFE_RESOURE_H
23 #define FIFE_RESOURE_H
34 #include "util/base/sharedptr.h"
38 typedef std::size_t ResourceHandle;
42 class IResourceLoader {
45 virtual ~IResourceLoader() { }
47 virtual void load(IResource* resource) = 0;
58 IResource(
const std::string& name, IResourceLoader* loader = 0)
61 m_state(RES_NOT_LOADED),
62 m_handle(m_curhandle++) { }
64 virtual ~IResource() { }
66 virtual const std::string& getName() {
return m_name; }
68 ResourceHandle getHandle() {
return m_handle; }
70 virtual ResourceState getState() {
return m_state; }
71 virtual void setState(
const ResourceState& state) { m_state = state; }
73 virtual size_t getSize() = 0;
75 virtual void load() = 0;
76 virtual void free() = 0;
80 IResourceLoader* m_loader;
81 ResourceState m_state;
84 ResourceHandle m_handle;
85 static ResourceHandle m_curhandle;
88 typedef SharedPtr<IResource> ResourcePtr;
credit to phoku for his NodeDisplay example which the visitor code is adapted from ( he coded the qua...