Crazy Eddie's GUI System
0.8.2
|
Templatised manager class that loads and manages named XML based resources. More...
Public Member Functions | |
NamedXMLResourceManager (const String &resource_type) | |
Constructor. More... | |
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. More... | |
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. More... | |
T & | createFromString (const String &source, XMLResourceExistsAction action=XREA_RETURN) |
Creates a new T object from a string and adds it to the collection. More... | |
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. More... | |
void | destroy (const T &object) |
Destroy the object object, or do nothing if such an object does not exist in the collection. More... | |
void | destroyAll () |
Destroy all objects. | |
T & | get (const String &object_name) const |
Return a reference to the object named object_name. More... | |
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 | |
Additional Inherited Members | |
Public Types inherited from CEGUI::EventSet | |
typedef ConstMapIterator < EventMap > | EventIterator |
Static Public Attributes inherited from CEGUI::ResourceEventSet | |
static const String | EventNamespace |
Namespace name for all resource managers. | |
static const String | EventResourceCreated |
static const String | EventResourceDestroyed |
static const String | EventResourceReplaced |
Templatised manager class that loads and manages named XML based resources.
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:
|
CEGUI::NamedXMLResourceManager< T, U >::NamedXMLResourceManager | ( | const String & | resource_type | ) |
Constructor.
resource_type | String object holding some textual indication of the type of objects managed by the collection. This is used to give more descriptive log and exception messages. |
T & CEGUI::NamedXMLResourceManager< T, U >::createFromContainer | ( | const RawDataContainer & | source, |
XMLResourceExistsAction | action = XREA_RETURN |
||
) |
Creates a new T object from a RawDataContainer and adds it to the collection.
Use an instance of the xml resource loading class \a U to process the XML source thereby creating an instance of class \a T and add it to the collection under the name specified in the XML file.
source | RawDataContainer holding the XML source to be used when creating the new object instance. |
action | One of the XMLResourceExistsAction enumerated values indicating what action should be taken when an object with the specified name already exists within the collection. |
T & CEGUI::NamedXMLResourceManager< T, U >::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.
Use an instance of the xml resource loading class \a U to process the XML file \a xml_filename from resource group \a resource_group thereby creating an instance of class \a T and add it to the collection under the name specified in the XML file.
xml_filename | String holding the filename of the XML file to be used when creating the new object instance. |
resource_group | String holding the name of the resource group identifier to be used when loading the XML file described by xml_filename. |
action | One of the XMLResourceExistsAction enumerated values indicating what action should be taken when an object with the specified name already exists within the collection. |
T & CEGUI::NamedXMLResourceManager< T, U >::createFromString | ( | const String & | source, |
XMLResourceExistsAction | action = XREA_RETURN |
||
) |
Creates a new T object from a string and adds it to the collection.
Use an instance of the xml resource loading class \a U to process the XML source thereby creating an instance of class \a T and add it to the collection under the name specified in the XML file.
source | String holding the XML source to be used when creating the new object instance. |
action | One of the XMLResourceExistsAction enumerated values indicating what action should be taken when an object with the specified name already exists within the collection. |
void CEGUI::NamedXMLResourceManager< T, U >::destroy | ( | const String & | object_name | ) |
Destroy the object named object_name, or do nothing if such an object does not exist in the collection.
object_name | String holding the name of the object to be destroyed. |
void CEGUI::NamedXMLResourceManager< T, U >::destroy | ( | const T & | object | ) |
Destroy the object object, or do nothing if such an object does not exist in the collection.
object | The object to be destroyed (beware of keeping references to this object once it's been destroyed!) |
T & CEGUI::NamedXMLResourceManager< T, U >::get | ( | const String & | object_name | ) | const |
Return a reference to the object named object_name.
object_name | String holding the name of the object to be returned. |
UnknownObjectException | thrown if no object named object_name exists within the collection. |