The Nebula Device 3: Resources::SimpleResourceMapper Class Reference

The Nebula Device 3

Resources::SimpleResourceMapper Class Reference

#include <simpleresourcemapper.h>

Inheritance diagram for Resources::SimpleResourceMapper:

Resources::ResourceMapper Core::RefCounted

Detailed Description

Generic, most simple resource mapper which can be used for all types of resources. Asynchronously loads managed resources on demand.

(C) 2007 Radon Labs GmbH

Public Member Functions

 SimpleResourceMapper ()
 constructor
virtual ~SimpleResourceMapper ()
 destructor
void SetResourceClass (const Core::Rtti &resClass)
 config: set resource type handled by resource mapper (e.g. Mesh::RTTI)
void SetResourceLoaderClass (const Core::Rtti &resLoaderClass)
 config: set resource loader class (e.g.
void SetManagedResourceClass (const Core::Rtti &managedResClass)
 config: set managed resource type handled by resource (e.g. ManagedMesh::RTTI)
virtual const Core::RttiGetResourceType () const
 get resource type handled by this resource mapper
virtual void OnAttachToResourceManager ()
 called from resource manager when mapper is attached
virtual void OnRemoveFromResourceManager ()
 called from resource manager when mapper is removed
virtual Ptr< ManagedResourceOnCreateManagedResource (const Core::Rtti &resType, const ResourceId &resId, const Ptr< ResourceLoader > &optResourceLoader=0)
 called when a managed resource should be created
virtual void OnDiscardManagedResource (const Ptr< ManagedResource > &managedResource)
 called when a managed resource should be discarded
virtual void OnPrepare (bool waiting)
 called before gathering render stats
virtual void OnUpdate (IndexT frameIndex)
 called after gathering render stats to perform resource management
virtual SizeT GetNumPendingResources () const
 return the number of currently pending resources
void SetPlaceholderResourceId (const ResourceId &resId)
 set a placeholder resource id
const ResourceIdGetPlaceholderResourceId () const
 get placeholder resource id
void SetAsyncEnabled (bool b)
 set asynchronous behaviour (default is asynchronous)
bool IsAsyncEnabled () const
 return asynchronous loading state
bool IsAttachedToResourceManager () const
 return true if currently attached to server
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

Ptr< ManagedResource > Resources::SimpleResourceMapper::OnCreateManagedResource ( const Core::Rtti resType,
const ResourceId resId,
const Ptr< ResourceLoader > &  optResourceLoader = 0 
) [virtual]

called when a managed resource should be created

This method is called by the ResourceManager when a new ManagedResource must be created. The resource manager will only call this method if this is the first request for the resource name.

Reimplemented from Resources::ResourceMapper.

void Resources::SimpleResourceMapper::OnDiscardManagedResource ( const Ptr< ManagedResource > &  managedResource  )  [virtual]

called when a managed resource should be discarded

This method will be called by the ResourceManager whenever a ManagedResource should be discarded.

Reimplemented from Resources::ResourceMapper.

void Resources::SimpleResourceMapper::OnPrepare ( bool  waiting  )  [virtual]

called before gathering render stats

This method will go through all ManagedResources and reset their render statistics. It will also check whether pending resources have finished loading, and update the associated managed resources accordingly.

Reimplemented from Resources::ResourceMapper.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.