![]() |
Gorgon Game Engine
|
This class is the base for all Gorgon Resources. More...
Public Member Functions | |
Base () | |
Default constructor. More... | |
const Containers::Collection< Base >::ConstIterator | begin () const |
Allows easy iteration through range based fors. More... | |
const Containers::Collection< Base >::ConstIterator | cbegin () const |
Beginning of children. More... | |
const Containers::Collection< Base >::ConstIterator | cend () const |
End of children. More... | |
bool | DeleteResource () |
Safely deletes the resource. More... | |
virtual void | Discard () |
This function shall discard any transitional data which is not vital after Prepare function is issued. More... | |
const Containers::Collection< Base >::ConstIterator | end () const |
Allows easy iteration through range based fors. More... | |
virtual GID::Type | GetGID () const =0 |
This function shall return Gorgon ID of this resource. More... | |
virtual SGuid | GetGuid () const |
Returns the guid of the object. More... | |
const std::string & | GetName () const |
Returns the name of this object. More... | |
Base & | GetParent () const |
Returns the parent. If no parent set, this function throws std::runtime_error. More... | |
Base * | GetParentPtr () const |
Returns the pointer to the parent. This function may return nullptr. More... | |
const Base & | GetRoot () const |
Returns the root of this resource. More... | |
bool | HasParent () const |
Returns whether this object has a parent. More... | |
virtual bool | IsEqual (const SGuid &guid) const |
This function tests whether this object has the given SGuid. More... | |
virtual void | Prepare () |
This function shall prepare this resource to be used after resource is loaded. More... | |
virtual void | Resolve (File &file) |
This function shall resolve links or similar constructs. More... | |
void | Save (Writer &writer) |
Saves this object into the given writer. The writer should be open prior to this call. More... | |
virtual void | SetGuid (SGuid guid) |
Changes the guid of the object. More... | |
virtual void | SetName (const std::string &name) |
Sets the name of the object. More... | |
Public Attributes | |
const Containers::Collection< Base > & | Children |
The children this object have. More... | |
unsigned long | refcount |
INTERNAL, Reference count, used in linking mechanism. More... | |
Protected Member Functions | |
virtual | ~Base () |
Destructor, Always children gets destroyed first. More... | |
void | destroychildren () |
Destroys the children of this resource. More... | |
virtual void | save (Writer &writer) const =0 |
void | setparenttonullptr (Base &base) |
Sets the parent of an object to nullptr, provides access. More... | |
Protected Attributes | |
Containers::Collection< Base > | children |
Child objects that this resource object have. More... | |
SGuid | guid |
SGuid to identify this resource object. More... | |
std::string | name |
Name of this resource object, may not be loaded. More... | |
Base * | parent |
Immediate parent of this resource. More... | |
const Base * | root |
Root of this resource. More... | |
This class is the base for all Gorgon Resources.
Base | ( | ) |
Default constructor.
|
protectedvirtual |
Destructor, Always children gets destroyed first.
References Base::destroychildren().
const Containers::Collection<Base>::ConstIterator begin | ( | ) | const |
Allows easy iteration through range based fors.
References Base::Children.
const Containers::Collection<Base>::ConstIterator cbegin | ( | ) | const |
Beginning of children.
References Base::Children.
const Containers::Collection<Base>::ConstIterator cend | ( | ) | const |
End of children.
References Base::Children.
bool DeleteResource | ( | ) |
Safely deletes the resource.
If the resource is being used more a single place, this method will not delete the resource, instead it will decrement the reference count and returns false.
References Base::refcount.
|
protected |
Destroys the children of this resource.
References Base::children.
|
virtual |
const Containers::Collection<Base>::ConstIterator end | ( | ) | const |
Allows easy iteration through range based fors.
References Base::Children.
|
pure virtual |
This function shall return Gorgon ID of this resource.
Implemented in TintedObject, StackedObject, Sound, ScalableObject, Rectangle, Pointer, Null, MaskedObject, Line, Image, Font, Folder, Data, Blob, and Animation.
|
virtual |
Returns the guid of the object.
References Base::guid.
const std::string& GetName | ( | ) | const |
Returns the name of this object.
References Base::name.
Base& GetParent | ( | ) | const |
Returns the parent. If no parent set, this function throws std::runtime_error.
References Base::parent.
Base* GetParentPtr | ( | ) | const |
Returns the pointer to the parent. This function may return nullptr.
References Base::parent.
const Base& GetRoot | ( | ) | const |
Returns the root of this resource.
Root of a resource is always exists, in case of no parent, the root is the object itself. Note that this value is cached and maintained. In rare cases, it will be recalculated.
References Base::parent, and Base::root.
bool HasParent | ( | ) | const |
Returns whether this object has a parent.
References Base::parent.
|
virtual |
This function tests whether this object has the given SGuid.
References Base::guid.
|
virtual |
|
virtual |
This function shall resolve links or similar constructs.
This function is intended to be called after a file is loaded. It has no meaning for in memory constructed resource trees. Default behavior is to pass the request to children.
References Base::children, and Base::Resolve().
void Save | ( | Writer & | writer | ) |
Saves this object into the given writer. The writer should be open prior to this call.
References ASSERT, Base::guid, SGuid::IsEmpty(), Writer::IsGood(), SGuid::New(), and Base::save().
|
protectedpure virtual |
Implemented in TintedObject, StackedObject, Sound, ScalableObject, Rectangle, Pointer, Null, MaskedObject, Line, Image, Font, Folder, Blob, and Animation.
|
virtual |
Changes the guid of the object.
References Base::guid.
|
virtual |
Sets the name of the object.
References Base::name.
|
protected |
Sets the parent of an object to nullptr, provides access.
References Base::parent, and Base::root.
const Containers::Collection<Base>& Children |
The children this object have.
The elements in const collections are modifiable, therefore, its possible to modify properties of the children. However, children should be added to the object using member methods as some objects do not allow children, or allow children that are of specific type.
|
protected |
Child objects that this resource object have.
Some of child objects can be private, therefore, this is not guaranteed to be complete
|
protected |
Name of this resource object, may not be loaded.
|
protected |
Immediate parent of this resource.
unsigned long refcount |
INTERNAL, Reference count, used in linking mechanism.
|
mutableprotected |
Root of this resource.