Om  1.0.0
A universal framework for multimedia simulation
Public Member Functions | Static Protected Member Functions | List of all members
om::resources::ResourceSetTypeTranscoder< DataType > Class Template Referenceabstract

A class that specifies functions that determine how an resource type should be encoded/decoded. More...

#include <omResourceSetTypeTranscoder.h>

Inheritance diagram for om::resources::ResourceSetTypeTranscoder< DataType >:
om::resources::ResourceSetTranscoderTemplate< DataType >

Public Member Functions

virtual ~ResourceSetTypeTranscoder ()
 Destroy the resource type transcoder, releasing internal resources. More...
 
const ResourceTypegetResourceType () const
 Return the resource type for the data type that this resource type handles. More...
 
virtual Bool encode (const ResourceID &resourceID, const DataType &data, const ResourceSet &resources, ResourceEncoder &encoder, ResourceManager *resourceManager=((void *) 0))=0
 Encode an object of this resource type into a binary format. More...
 
virtual DataType * decode (ResourceID &resourceID, ResourceDecoder &decoder, ResourceReferencePatcher &references, ResourceManager *resourceManager=((void *) 0))=0
 Decode an object of the resource type, constructing and returning a pointer to the final object. More...
 
virtual void patchReferences (const ResourceReference *references, Size numReferences, const ResourceSet &resources, DataType &data)
 Patch the specified array of references for a previously-decoded object from the given set of resources. More...
 
virtual void finalize (DataType &data)
 Finish loading an object and perform final initialization after all references have been patched. More...
 
virtual DataType * instance (const DataType &data, const ResourceSetTranscoder &transcoder, ResourceSet &resources) const
 Duplicate an object from a prototype and return a pointer to the new object. More...
 
virtual void replaceInstances (DataType &data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder, ResourceSet &resources) const
 Replace child object instances on a new prototype component. More...
 
virtual Bool findInstances (const DataType &data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder) const
 Return whether or not any child objects were instanced by a prototype. More...
 

Static Protected Member Functions

template<typename InstanceType >
static InstanceType * replaceInstance (InstanceType *data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder, ResourceSet &resources)
 
static OpaqueResource replaceInstance (const OpaqueResource &data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder, ResourceSet &resources)
 
static void * replaceInstance (void *data, const ResourceType &dataType, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder, ResourceSet &resources)
 
template<typename InstanceType >
static Bool findInstance (InstanceType *data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder)
 
static Bool findInstance (const OpaqueResource &data, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder)
 
static Bool findInstance (void *data, const ResourceType &dataType, const Prototype &prototype, const Prototype &instance, const ResourceSetTranscoder &transcoder)
 

Detailed Description

template<typename DataType>
class om::resources::ResourceSetTypeTranscoder< DataType >

A class that specifies functions that determine how an resource type should be encoded/decoded.

Constructor & Destructor Documentation

template<typename DataType>
virtual om::resources::ResourceSetTypeTranscoder< DataType >::~ResourceSetTypeTranscoder ( )
inlinevirtual

Destroy the resource type transcoder, releasing internal resources.

Member Function Documentation

template<typename DataType>
const ResourceType& om::resources::ResourceSetTypeTranscoder< DataType >::getResourceType ( ) const
inline

Return the resource type for the data type that this resource type handles.

template<typename DataType>
virtual Bool om::resources::ResourceSetTypeTranscoder< DataType >::encode ( const ResourceID resourceID,
const DataType &  data,
const ResourceSet resources,
ResourceEncoder encoder,
ResourceManager resourceManager = ((void *) 0) 
)
pure virtual
template<typename DataType>
virtual DataType* om::resources::ResourceSetTypeTranscoder< DataType >::decode ( ResourceID resourceID,
ResourceDecoder decoder,
ResourceReferencePatcher references,
ResourceManager resourceManager = ((void *) 0) 
)
pure virtual

Decode an object of the resource type, constructing and returning a pointer to the final object.

Implemented in om::resources::ResourceSetTranscoderTemplate< DataType >, om::resources::ResourceSetTranscoderTemplate< DataType >, om::resources::ResourceSetTranscoderTemplate< DataType >, om::resources::ResourceSetTranscoderTemplate< DataType >, om::resources::ResourceSetTranscoderTemplate< DataType >, om::graphics::resources::IndexBufferResourceTranscoder, om::sound::resources::SoundPluginResourceTranscoder, om::resources::ResourceSetTranscoderTemplate< DataType >, om::resources::ResourceGroupTranscoder, om::resources::PrototypeResourceTranscoder, om::resources::ResourceTagTranscoder, om::graphics::resources::VertexBufferResourceTranscoder, om::graphics::resources::CameraResourceTranscoder, om::graphics::resources::ConstantSetResourceTranscoder, om::graphics::resources::MaterialResourceTranscoder, om::graphics::resources::MeshGroupResourceTranscoder, om::graphics::resources::GraphicsObjectResourceTranscoder, om::graphics::resources::GraphicsSceneResourceTranscoder, om::graphics::resources::ShaderProgramResourceTranscoder, om::graphics::resources::ShaderProgramSourceResourceTranscoder, om::graphics::resources::ShaderSourceResourceTranscoder, om::graphics::resources::GraphicsShapeResourceTranscoder, om::graphics::resources::SkeletonResourceTranscoder, om::graphics::resources::TechniqueResourceTranscoder, om::graphics::resources::TextureResourceTranscoder, om::graphics::resources::TextureSetResourceTranscoder, om::graphics::resources::VertexBufferSetResourceTranscoder, om::graphics::gui::resources::FontResourceTranscoder, om::images::resources::ImageResourceTranscoder, om::physics::resources::ConstraintResourceTranscoder, om::physics::resources::ForceFieldResourceTranscoder, om::physics::resources::ForceResourceTranscoder, om::physics::resources::PhysicsMaterialResourceTranscoder, om::physics::resources::PhysicsObjectResourceTranscoder, om::physics::resources::PhysicsSceneResourceTranscoder, om::physics::resources::PhysicsShapeResourceTranscoder, om::sound::resources::SoundBufferResourceTranscoder, om::sound::resources::DirectionalIRResourceTranscoder, om::sound::resources::MIDIResourceTranscoder, om::sound::resources::SoundResourceTranscoder, om::sound::resources::SoundTrackResourceTranscoder, om::sound::acoustics::resources::SoundListenerResourceTranscoder, om::sound::acoustics::resources::SoundMaterialResourceTranscoder, om::sound::acoustics::resources::MeshGroupResourceTranscoder, om::sound::acoustics::resources::SoundObjectResourceTranscoder, om::sound::acoustics::resources::SoundSceneResourceTranscoder, om::sound::acoustics::resources::SoundShapeResourceTranscoder, and om::sound::acoustics::resources::SoundSourceResourceTranscoder.

template<typename DataType>
virtual void om::resources::ResourceSetTypeTranscoder< DataType >::patchReferences ( const ResourceReference references,
Size  numReferences,
const ResourceSet resources,
DataType &  data 
)
inlinevirtual

Patch the specified array of references for a previously-decoded object from the given set of resources.

The default implementation has no effect.

Reimplemented in om::resources::ResourceGroupTranscoder, om::resources::PrototypeResourceTranscoder, and om::resources::ResourceTagTranscoder.

template<typename DataType>
virtual void om::resources::ResourceSetTypeTranscoder< DataType >::finalize ( DataType &  data)
inlinevirtual

Finish loading an object and perform final initialization after all references have been patched.

The default implementation has no effect.

template<typename DataType>
virtual DataType* om::resources::ResourceSetTypeTranscoder< DataType >::instance ( const DataType &  data,
const ResourceSetTranscoder transcoder,
ResourceSet resources 
) const
inlinevirtual

Duplicate an object from a prototype and return a pointer to the new object.

The default implementation calls the object's copy constructor.

Reimplemented in om::resources::PrototypeResourceTranscoder.

template<typename DataType>
virtual void om::resources::ResourceSetTypeTranscoder< DataType >::replaceInstances ( DataType &  data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder,
ResourceSet resources 
) const
inlinevirtual

Replace child object instances on a new prototype component.

The default implementation has no effect.

Reimplemented in om::resources::PrototypeResourceTranscoder, om::resources::ResourceGroupTranscoder, and om::resources::ResourceTagTranscoder.

template<typename DataType>
virtual Bool om::resources::ResourceSetTypeTranscoder< DataType >::findInstances ( const DataType &  data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder 
) const
inlinevirtual

Return whether or not any child objects were instanced by a prototype.

The default implementation has no effect and returns FALSE.

Reimplemented in om::resources::PrototypeResourceTranscoder, om::resources::ResourceGroupTranscoder, and om::resources::ResourceTagTranscoder.

template<typename DataType >
template<typename InstanceType >
InstanceType * om::resources::ResourceSetTypeTranscoder< DataType >::replaceInstance ( InstanceType *  data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder,
ResourceSet resources 
)
staticprotected
template<typename DataType >
OpaqueResource om::resources::ResourceSetTypeTranscoder< DataType >::replaceInstance ( const OpaqueResource data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder,
ResourceSet resources 
)
staticprotected
template<typename DataType >
void * om::resources::ResourceSetTypeTranscoder< DataType >::replaceInstance ( void *  data,
const ResourceType dataType,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder,
ResourceSet resources 
)
staticprotected
template<typename DataType >
template<typename InstanceType >
Bool om::resources::ResourceSetTypeTranscoder< DataType >::findInstance ( InstanceType *  data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder 
)
staticprotected
template<typename DataType >
Bool om::resources::ResourceSetTypeTranscoder< DataType >::findInstance ( const OpaqueResource data,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder 
)
staticprotected
template<typename DataType >
Bool om::resources::ResourceSetTypeTranscoder< DataType >::findInstance ( void *  data,
const ResourceType dataType,
const Prototype prototype,
const Prototype instance,
const ResourceSetTranscoder transcoder 
)
staticprotected

The documentation for this class was generated from the following files: