Public Member Functions |
| NamedXMLResourceManager (const String &resource_type) |
| Constructor.
|
virtual | ~NamedXMLResourceManager () |
| Destructor.
|
T & | createFromContainer (const RawDataContainer &source, XMLResourceExistsAction action=XREA_RETURN) |
| Creates a new T object from a RawDataContainer and adds it to the collection.
|
T & | createFromFile (const String &xml_filename, const String &resource_group="", XMLResourceExistsAction action=XREA_RETURN) |
| Creates a new T object from an XML file and adds it to the collection.
|
T & | createFromString (const String &source, XMLResourceExistsAction action=XREA_RETURN) |
| Creates a new T object from a string and adds it to the collection.
|
void | destroy (const String &object_name) |
| Destroy the object named object_name, or do nothing if such an object does not exist in the collection.
|
void | destroy (const T &object) |
| Destroy the object object, or do nothing if such an object does not exist in the collection.
|
void | destroyAll () |
| Destroy all objects.
|
T & | get (const String &object_name) const |
| Return a reference to the object named object_name.
|
bool | isDefined (const String &object_name) const |
| Return whether an object named object_name exists.
|
void | createAll (const String &pattern, const String &resource_group) |
| Create a new T object from files with names matching pattern in resource_group.
|
Protected Types |
typedef std::map< String, T
*, StringFastLessCompare
CEGUI_MAP_ALLOC(String, T *) | ObjectRegistry ) |
| type of collection used to store and manage objects
|
Protected Member Functions |
void | destroyObject (typename ObjectRegistry::iterator ob) |
| implementation of object destruction.
|
T & | doExistingObjectAction (const String object_name, T *object, const XMLResourceExistsAction action) |
| function to enforce XMLResourceExistsAction policy.
|
virtual void | doPostObjectAdditionAction (T &object) |
| Function called each time a new object is added to the collection.
|
Protected Attributes |
const String | d_resourceType |
| String holding the text for the resource type managed.
|
ObjectRegistry | d_objects |
| the collection of objects
|
template<typename T, typename U>
class CEGUI::NamedXMLResourceManager< T, U >
Templatised manager class that loads and manages named XML based resources.
- Template Parameters:
-
T | Type for the object that is loaded and managed by the class. |
U | Type for the loader used to create object instances of T from XML files. This class does all of the creation / loading work and can be of any form or type desired, with the following requirements:
- a constructor signature compatible with the following call: U(const String& xml_filename, const String& resource_group);
- a function getObjectName that returns the name of the object as specified in the XML file given in the constructor to U.
- a function getObject that returns a reference to the object created as a result of processing the XML file given in the constructor to U.
|
- Note:
- Once NamedXMLResourceManager calls getObject on the instance of U, it assumes that it now owns the object returned, if no call to getObject is made, no such transfer of ownership is assumed.