Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ONE::util::ResourceManager< T, Key, Sto > Class Template Reference

Inheritance diagram for ONE::util::ResourceManager< T, Key, Sto >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<typename T, typename Key, typename Sto>
class ONE::util::ResourceManager< T, Key, Sto >

manages acquisition and cleanup of resources

Resources are identified by keys of type Key. This is usually a string (such as a file name or similar) but may be any compatible type. Resources are created through the create function when they are first requested. After that, they are returned from the cache, provided that neither clear nor remove was called. Cached resources are destroyed when they are removed.

Note:
Managers that handle unmanaged resources must call clear at shutdown.
Parameters:
T the managed resource type
Key the key type, usually string or similar
Sto the type returned by the get function, usually either T* or Handle<T>. Other types will not be managed.
Author:
Daniel Seibert


Public Member Functions

void clear ()
 clears the cache
Sto get (const Key &k)
 retrieves the object identified by k
unsigned int getCount () const
bool isCached (const Key &k) const
 checks if the object identified by k is cached
void remove (const Key &k)
 removes an object from the cache

Protected Member Functions

virtual Sto create (const Key &)=0
virtual void dispose (Sto &)=0
virtual std::string toString (const Key &) const =0
 converts the given key to an identifier string


Member Function Documentation

template<typename T, typename Key, typename Sto>
void ONE::util::ResourceManagerBase< T, Key, Sto >::clear  )  [inherited]
 

clears the cache

All cached resources are destroyed. Note that calling this function will invalidate any pointer to a cached resource that may be held elsewhere.

template<typename T, typename Key, typename Sto>
virtual Sto ONE::util::ResourceManagerBase< T, Key, Sto >::create const Key  )  [protected, pure virtual, inherited]
 

Implemented in ONE::util::ResourceManager< T, Key, Handle< T > >.

template<typename T, typename Key, typename Sto>
virtual void ONE::util::ResourceManagerBase< T, Key, Sto >::dispose Sto &   )  [protected, pure virtual, inherited]
 

Implemented in ONE::util::ResourceManager< T, Key, T * >, and ONE::util::ResourceManager< T, Key, Handle< T > >.

template<typename T, typename Key, typename Sto>
Sto ONE::util::ResourceManagerBase< T, Key, Sto >::get const Key k  )  [inherited]
 

retrieves the object identified by k

If k is found in the cache, the cached object is returned. Otherwise, a new object is created through the create function, cached via insert and returned.

Parameters:
k the key identifying the desired object
Returns:
an object as specified above

template<typename T, typename Key, typename Sto>
unsigned int ONE::util::ResourceManagerBase< T, Key, Sto >::getCount  )  const [inline, inherited]
 

Returns:
the number of cached objects

template<typename T, typename Key, typename Sto>
bool ONE::util::ResourceManagerBase< T, Key, Sto >::isCached const Key k  )  const [inline, inherited]
 

checks if the object identified by k is cached

The resource will not be loaded if k is not found. Note that this function runs in O(log n) time.

Parameters:
k the desired key

template<typename T, typename Key, typename Sto>
void ONE::util::ResourceManagerBase< T, Key, Sto >::remove const Key k  )  [inherited]
 

removes an object from the cache

The removed object is destroyed. Note that this will invalidate any pointer to the resource that may be held elsewhere. If k is unknown, this function will fail silently.

Parameters:
k a key

template<typename T, typename Key, typename Sto>
virtual std::string ONE::util::ResourceManagerBase< T, Key, Sto >::toString const Key  )  const [protected, pure virtual, inherited]
 

converts the given key to an identifier string

The return value is stored in the resource map and must serve as a unique identifier for the key.


Generated on Wed Sep 7 19:03:32 2005 for ONEngine by  doxygen 1.4.3