Clients of this library need to provide component loaders for anything that they want loaded. More...
|virtual||~TypeComponentLoader (void) throw ()|
|virtual const char *||getComponentName (void) const =0 throw ()|
|what type of component does this load? "physics", "model", "ai" ... |
|virtual const char *||getLoaderName (void) const =0 throw ()|
|what is the name of this loader? "Bob's homemade loader"? |
|virtual bool||isMyFormat (const Datahash *componentData, const char *path) const =0|
|given the component data, is this something we can load? |
|virtual smart_ptr< ComponentData >||loadTS (smart_ptr< Instance > &instance, const Datahash *componentData, const char *path)=0|
|go ahead and load the given component for the given instance |
Clients of this library need to provide component loaders for anything that they want loaded.
For instance, servers will need to provide loaders for physics and ai components, and clients will need to provide loaders for visual components.
Think of TypeComponentLoader objects as factories. They are capable of creating rich component data for a specific instance of a type.
Every method must be threadsafe! Can be called on multiple background threads during loading etc.
|aesop::TypeComponentLoader::~TypeComponentLoader||(||void||)|| throw ()