The Nebula Device 3: Resources::ResourceMapper Class Reference

The Nebula Device 3

Resources::ResourceMapper Class Reference

#include <resourcemapper.h>

Inheritance diagram for Resources::ResourceMapper:

Core::RefCounted Resources::SimpleResourceMapper

Detailed Description

Subclasses of ResourceMapper implement specific resource management strategies for one resource type (texture, mesh, etc...). Applications may implement their own specialized ResourceMappers if the provided standard mappers don't fit their needs. ResourceMappers are attached to the ResourceManager (one per resource type) and are called back by the resource server to perform resource creation and management. Resource clients never talk directly to ResourceMappers, instead they call the ResourceManager which in turn talks to the ResourceMappers.

(C) 2007 Radon Labs GmbH

Public Member Functions

 ResourceMapper ()
 constructor
virtual ~ResourceMapper ()
 destructor
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
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
bool IsAttachedToResourceManager () const
 return true if currently attached to server
virtual Ptr< ManagedResourceOnCreateManagedResource (const Core::Rtti &resType, const ResourceId &resourceId, const Ptr< ResourceLoader > &optResourceLoader)
 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
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

SizeT Resources::ResourceMapper::GetNumPendingResources (  )  const [virtual]

return the number of currently pending resources

This method must return the number of currently pending resources (resource which have been requested but are not loaded yet).

Reimplemented in Resources::SimpleResourceMapper.

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.