AGX Dynamics 2.39.0.0
|
agx::Object is a refcounted object with a name. More...
#include <Object.h>
Classes | |
class | Event |
Public Types | |
typedef agx::observer_ptr< const Event > | EventConstObserver |
typedef agx::ref_ptr< const Event > | EventConstRef |
typedef agx::observer_ptr< Event > | EventObserver |
typedef agx::Vector< EventObserver > | EventObserverVector |
typedef agx::VectorPOD< Event * > | EventPtrVector |
typedef agx::ref_ptr< Event > | EventRef |
typedef agx::Vector< EventRef > | EventRefVector |
Public Member Functions | |
Object (const Name &name=Name(), Model *model=Object::ClassModel()) | |
void | addListener (EventListener *listener) |
virtual void | buildNavigationTree (agxJson::Value &eNode) const |
virtual void | configure (TiXmlElement *) |
agx::String | fullName () const |
agx::String | fullPath () const |
agx::String | fullPath (const agx::Object *root) const |
template<typename T > | |
T * | getAutoScopedResource (const agx::Path &path) |
template<typename T > | |
const T * | getAutoScopedResource (const agx::Path &path) const |
agx::Object * | getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) |
const agx::Object * | getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const |
agx::Object * | getContext () |
template<typename T > | |
T * | getContext () |
const agx::Object * | getContext () const |
template<typename T > | |
const T * | getContext () const |
agx::UInt32 | getId () const |
const agx::Name & | getImplementationName () const |
agx::Model * | getModel () |
const agx::Model * | getModel () const |
const agx::Name & | getName () const |
agx::Object * | getNextSibling () |
const agx::Object * | getNextSibling () const |
agx::Path | getPath () const |
agx::Path | getPath (const agx::Object *root) const |
template<typename T > | |
T * | getResource (const agx::Path &path) |
template<typename T > | |
const T * | getResource (const agx::Path &path) const |
agx::Object * | getResource (const agx::Path &path, agx::Model *model=nullptr) |
const agx::Object * | getResource (const agx::Path &path, agx::Model *model=nullptr) const |
virtual agx::Object * | getResourceImpl (const agx::Path &path, agx::Model *model) |
agx::Object * | getRootContext () |
const agx::Object * | getRootContext () const |
bool | hasListener (EventListener *listener) |
bool | hasParent (const agx::Object *node) const |
bool | isUnique () const |
virtual void | printSubtree () const |
virtual void | rebind () |
void | removeListener (EventListener *listener) |
virtual void | save (TiXmlElement *) const |
virtual void | setContext (agx::Object *context) |
void | setId (UInt32 id) |
void | setModel (agx::Model *model) |
Set the object model (handled automatically). | |
void | setName (const agx::Name &name) |
Set the name of the object. | |
virtual void | snapshot (TiXmlNode *, const String &) const |
Public Member Functions inherited from agx::Referenced | |
Referenced () | |
Default constructor. | |
Referenced (const Referenced &) | |
template<typename T > | |
T * | as () |
Subclass casting. | |
template<typename T > | |
const T * | as () const |
template<typename T > | |
T * | asSafe () |
Safe subclass casting, return nullptr if template type does not match. | |
template<typename T > | |
const T * | asSafe () const |
int | getReferenceCount () const |
template<typename T > | |
bool | is () const |
Subclass test. | |
Referenced & | operator= (const Referenced &) |
Assignment operator. Will increment the number of references to the referenced object. | |
void | reference (void *ptr=nullptr) const |
Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
void | unreference (void *ptr=nullptr) const |
Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
void | unreference_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Static Public Member Functions | |
static agx::Model * | ClassModel () |
static agx::String | generateName (const agx::String &bindPath) |
static const HashSet< Object * > & | getActiveObjects () |
static bool | getEnableRebind () |
Should rebinding be allowed? Right now a global setting. | |
static Object * | load (const String &path, Device *device, const String &type, const String &attribute, const String &value) |
template<typename T > | |
static T * | load (const String &path, Device *device, const String &type, const String &attribute, const String &value) |
static Object * | load (const String &path, Device *device, const String &type="", size_t instance=0) |
template<typename T > | |
static T * | load (const String &path, Device *device, const String &type="", size_t instance=0) |
static void | load (const String &path, Device *device, ObjectPtrVector &loadedObjects) |
static Object * | load (TiXmlElement *eObject, Device *device) |
template<typename T > | |
static T * | load (TiXmlElement *eObject, Device *device) |
static TiXmlDocument | openDocument (const String &path) |
static void | setEnableRebind (bool flag) |
Sets if rebinding of objects should be allowed (Right now a global setting). | |
Static Public Member Functions inherited from agx::Referenced | |
template<typename T > | |
static bool | ValidateCast (const Referenced *object) |
Protected Member Functions | |
virtual | ~Object () |
Protected Member Functions inherited from agx::Referenced | |
virtual | ~Referenced () |
Destructor. | |
void | allocateObserverVector () const |
void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
Static Protected Member Functions inherited from agx::Referenced | |
static DeleteHandler * | getDeleteHandler () |
static void | setDeleteHandler (DeleteHandler *handler) |
Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Protected Attributes inherited from agx::Referenced | |
Mutex | m_mutex |
ObserverContainer | m_observers |
AtomicValue | m_refCount |
agx::Object is a refcounted object with a name.
It is used together with the subclass agx::Component to build hierarchies of objects, which can be accessed dynamically at runtime using string paths.
typedef agx::observer_ptr< const Event > agx::Object::EventConstObserver |
typedef agx::ref_ptr< const Event > agx::Object::EventConstRef |
typedef agx::observer_ptr< Event > agx::Object::EventObserver |
typedef agx::VectorPOD< Event *> agx::Object::EventPtrVector |
typedef agx::ref_ptr< Event > agx::Object::EventRef |
typedef agx::Vector< EventRef> agx::Object::EventRefVector |
agx::Object::Object | ( | const Name & | name = Name() , |
Model * | model = Object::ClassModel() |
||
) |
|
protectedvirtual |
void agx::Object::addListener | ( | EventListener * | listener | ) |
|
virtual |
Reimplemented in agx::Component, agx::Model, agx::Pointer, agxData::Buffer, and agxData::Value.
|
static |
|
inlinevirtual |
agx::String agx::Object::fullName | ( | ) | const |
Referenced by agxData::Buffer::getElement(), and agxData::Buffer::ptr().
agx::String agx::Object::fullPath | ( | ) | const |
agx::String agx::Object::fullPath | ( | const agx::Object * | root | ) | const |
|
static |
T * agx::Object::getAutoScopedResource | ( | const agx::Path & | path | ) |
Definition at line 427 of file Object.h.
References getAutoScopedResource(), and agx::Referenced::is().
const T * agx::Object::getAutoScopedResource | ( | const agx::Path & | path | ) | const |
agx::Object * agx::Object::getAutoScopedResource | ( | const agx::Path & | path, |
agx::Model * | model = nullptr |
||
) |
Referenced by getAutoScopedResource().
const agx::Object * agx::Object::getAutoScopedResource | ( | const agx::Path & | path, |
agx::Model * | model = nullptr |
||
) | const |
Object * agx::Object::getContext | ( | ) |
Definition at line 372 of file Object.h.
Referenced by agxData::Value::get(), getContext(), and agx::Model::getNamespace().
T * agx::Object::getContext |
Definition at line 400 of file Object.h.
References getContext().
const T * agx::Object::getContext |
Definition at line 406 of file Object.h.
References getContext().
|
static |
Should rebinding be allowed? Right now a global setting.
UInt32 agx::Object::getId | ( | ) | const |
Definition at line 369 of file Object.h.
Referenced by agxData::EntityStorage::indexToId().
const agx::Name & agx::Object::getImplementationName | ( | ) | const |
const Name & agx::Object::getName | ( | ) | const |
Definition at line 368 of file Object.h.
Referenced by agxData::Value::get(), agxData::EntityStorage::get(), agxData::FormatBinding< T >::getFormat(), and agxData::EntityPtr::operator()().
agx::Object * agx::Object::getNextSibling | ( | ) |
const agx::Object * agx::Object::getNextSibling | ( | ) | const |
agx::Path agx::Object::getPath | ( | ) | const |
Referenced by agx::ArrayParameter::get(), agx::PointerParameter::get(), agx::ScalarParameter::get(), agx::Component::getObject(), agxData::EntityInstance::verifyIndex(), and agxData::EntityPtr::verifyIndex().
agx::Path agx::Object::getPath | ( | const agx::Object * | root | ) | const |
root | A node along the parent path from this object. |
T * agx::Object::getResource | ( | const agx::Path & | path | ) |
Definition at line 413 of file Object.h.
References getResource(), and agx::Referenced::is().
const T * agx::Object::getResource | ( | const agx::Path & | path | ) | const |
agx::Object * agx::Object::getResource | ( | const agx::Path & | path, |
agx::Model * | model = nullptr |
||
) |
Referenced by getResource().
const agx::Object * agx::Object::getResource | ( | const agx::Path & | path, |
agx::Model * | model = nullptr |
||
) | const |
|
virtual |
agx::Object * agx::Object::getRootContext | ( | ) |
const agx::Object * agx::Object::getRootContext | ( | ) | const |
bool agx::Object::hasListener | ( | EventListener * | listener | ) |
bool agx::Object::hasParent | ( | const agx::Object * | node | ) | const |
|
static |
|
static |
|
static |
Referenced by load().
|
static |
|
static |
|
inlinevirtual |
Reimplemented in agx::Component.
|
inlinevirtual |
Reimplemented in agxData::FunctionValue, agx::Clock, agx::Component, agx::Kernel, agx::Parameter, agx::Task, agxData::Value, and agxIO::KeyEvent.
void agx::Object::removeListener | ( | EventListener * | listener | ) |
|
inlinevirtual |
Reimplemented in agx::Clock.
|
virtual |
Reimplemented in agxData::FunctionValue, and agx::Task.
|
static |
Sets if rebinding of objects should be allowed (Right now a global setting).
Allowing it when adding larger parts to the system tree might hit performance, so it might be smarter to disable it first, then add, and then enable again.
void agx::Object::setId | ( | UInt32 | id | ) |
void agx::Object::setModel | ( | agx::Model * | model | ) |
Set the object model (handled automatically).
References agx::getModel().
void agx::Object::setName | ( | const agx::Name & | name | ) |
Set the name of the object.
|
inlinevirtual |
Reimplemented in agx::Component.