AGX Dynamics 2.39.0.0
Loading...
Searching...
No Matches
agxData::Value Class Reference

Abstract representation of a value. More...

#include <Value.h>

+ Inheritance diagram for agxData::Value:

Public Types

typedef agx::Event1< Value * > Event
 
- Public Types inherited from agx::Object
typedef agx::observer_ptr< const EventEventConstObserver
 
typedef agx::ref_ptr< const EventEventConstRef
 
typedef agx::observer_ptr< EventEventObserver
 
typedef agx::Vector< EventObserverEventObserverVector
 
typedef agx::VectorPOD< Event * > EventPtrVector
 
typedef agx::ref_ptr< EventEventRef
 
typedef agx::Vector< EventRefEventRefVector
 

Public Member Functions

 Value (const agx::Name &name, const agxData::Format *format)
 
 Value (const agx::Name &name, const agxData::Type *type)
 
 Value (const agxData::Format *format)
 
 Value (const agxData::Type *type)
 
void addListener (EventListener *listener)
 
void bind (const agx::Path &path)
 Set bind path which will auto-bind when resolved.
 
void bind (Value *binding)
 Explicit binding, also disables auto-binding.
 
virtual void buildNavigationTree (agxJson::Value &eNode) const override
 
Valueclone () const
 
virtual void configure (agx::TiXmlElement *eValue) override
 
template<typename T >
const T & get () const
 
ValuegetBinding ()
 
const ValuegetBinding () const
 
const agx::PathgetBindPath () const
 
virtual agxData::DatagetData ()
 
agxData::FormatgetFormat ()
 
const agxData::FormatgetFormat () const
 
ValuegetRootBinding ()
 
const ValuegetRootBinding () const
 
agxData::TypegetType ()
 
const agxData::TypegetType () const
 
bool hasListener (EventListener *listener)
 
bool isTypeCompatible (const Value *other)
 
bool isValid () const
 
void print () const
 
void * ptr ()
 
const void * ptr () const
 
virtual void rebind () override
 Rebind with the current auto-bind path.
 
void removeListener (EventListener *listener)
 
virtual void save (agx::TiXmlElement *eParent) const override
 
template<typename T >
void set (const T &value)
 
void set (const Value *other)
 Explicitly set the value, removes active binding and disables autobinding.
 
void set (const ValueRef &other)
 
void set (Value *other)
 
void set (ValueRef &other)
 
void setDefaultValue ()
 Set the default value of the format.
 
void setExpression (const agx::String &expression)
 Configure value using an expression.
 
void setFormat (agxData::Format *format)
 
template<typename T >
void signal (const T &value)
 Wrapper for this->getRootBinding()->set()
 
virtual void snapshot (agx::TiXmlNode *eParent, const agx::String &directory) const override
 
agx::String toString () const
 
template<typename T >
transform () const
 
void unbind (bool removeAutoBindPath=true)
 Unbind, also disables auto-binding.
 
- Public Member Functions inherited from agx::Object
 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::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const
 
agx::ObjectgetContext ()
 
template<typename T >
T * getContext ()
 
const agx::ObjectgetContext () const
 
template<typename T >
const T * getContext () const
 
agx::UInt32 getId () const
 
const agx::NamegetImplementationName () const
 
agx::ModelgetModel ()
 
const agx::ModelgetModel () const
 
const agx::NamegetName () const
 
agx::ObjectgetNextSibling ()
 
const agx::ObjectgetNextSibling () 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::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr) const
 
virtual agx::ObjectgetResourceImpl (const agx::Path &path, agx::Model *model)
 
agx::ObjectgetRootContext ()
 
const agx::ObjectgetRootContext () 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.
 
Referencedoperator= (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::ModelClassModel ()
 
static void copy (Value *target, const Value *source)
 
static Valueload (agx::TiXmlElement *eValue, agx::Device *device)
 
- Static Public Member Functions inherited from agx::Object
static agx::ModelClassModel ()
 
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 Objectload (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 Objectload (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 Objectload (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)
 

Public Attributes

Event updateEvent
 Triggered when the value is updated.
 

Protected Member Functions

virtual ~Value ()
 
virtual bool bind (Object *object)
 
void forceRemove ()
 
- Protected Member Functions inherited from agx::Object
virtual ~Object ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

agx::UInt32 m_allocationIndex
 
ValueRef m_binding
 
EventListener m_bindingListener
 
agx::Path m_bindPath
 
ValuePtrVector m_children
 
EventDispatch m_eventDispatch
 
FormatRef m_format
 
bool m_restartIteration
 
AbstractScalar m_value
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Additional Inherited Members

- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 

Detailed Description

Abstract representation of a value.

The value has a name and specified format, and since it is an agx::Object it can be inserted as a node in the system hierarchy.

Values can bind to other values, and is automatically synchronized when the reference value is updated.

Definition at line 48 of file Value.h.

Member Typedef Documentation

◆ Event

Definition at line 60 of file Value.h.

Constructor & Destructor Documentation

◆ Value() [1/4]

agxData::Value::Value ( const agx::Name name,
const agxData::Type type 
)

◆ Value() [2/4]

agxData::Value::Value ( const agx::Name name,
const agxData::Format format 
)

◆ Value() [3/4]

agxData::Value::Value ( const agxData::Type type)

◆ Value() [4/4]

agxData::Value::Value ( const agxData::Format format)

References agxData::transform().

◆ ~Value()

virtual agxData::Value::~Value ( )
protectedvirtual

Member Function Documentation

◆ addListener()

void agxData::Value::addListener ( EventListener *  listener)

◆ bind() [1/3]

void agxData::Value::bind ( const agx::Path path)

Set bind path which will auto-bind when resolved.

◆ bind() [2/3]

virtual bool agxData::Value::bind ( Object object)
protectedvirtual

◆ bind() [3/3]

void agxData::Value::bind ( Value binding)

Explicit binding, also disables auto-binding.

◆ buildNavigationTree()

virtual void agxData::Value::buildNavigationTree ( agxJson::Value &  eNode) const
overridevirtual

Reimplemented from agx::Object.

Reimplemented in agx::Pointer.

◆ ClassModel()

static agx::Model * agxData::Value::ClassModel ( )
static

◆ clone()

Value * agxData::Value::clone ( ) const

◆ configure()

virtual void agxData::Value::configure ( agx::TiXmlElement *  eValue)
overridevirtual

◆ copy()

static void agxData::Value::copy ( Value target,
const Value source 
)
static

◆ forceRemove()

void agxData::Value::forceRemove ( )
protected

Referenced by agxData::Val< T >::~Val().

◆ get()

◆ getBinding() [1/2]

Value * agxData::Value::getBinding ( )
Returns
The parent value binding.

Definition at line 389 of file Value.h.

References m_binding.

◆ getBinding() [2/2]

const Value * agxData::Value::getBinding ( ) const

Definition at line 390 of file Value.h.

References m_binding.

◆ getBindPath()

const agx::Path & agxData::Value::getBindPath ( ) const
Returns
The auto-bind path.

Definition at line 397 of file Value.h.

References m_bindPath.

◆ getData()

virtual agxData::Data * agxData::Value::getData ( )
virtual

◆ getFormat() [1/2]

agxData::Format * agxData::Value::getFormat ( )
Returns
The value format.

Definition at line 387 of file Value.h.

References m_format.

Referenced by agxData::ValueT< T >::ValidateCast().

◆ getFormat() [2/2]

const agxData::Format * agxData::Value::getFormat ( ) const

Definition at line 388 of file Value.h.

References m_format.

◆ getRootBinding() [1/2]

Value * agxData::Value::getRootBinding ( )
Returns
The root value binding.

Referenced by signal().

◆ getRootBinding() [2/2]

const Value * agxData::Value::getRootBinding ( ) const

◆ getType() [1/2]

agxData::Type * agxData::Value::getType ( )
Returns
The value type.

Definition at line 377 of file Value.h.

References m_format.

◆ getType() [2/2]

const agxData::Type * agxData::Value::getType ( ) const

Definition at line 382 of file Value.h.

References m_format.

◆ hasListener()

bool agxData::Value::hasListener ( EventListener *  listener)

◆ isTypeCompatible()

bool agxData::Value::isTypeCompatible ( const Value other)

◆ isValid()

bool agxData::Value::isValid ( ) const
Returns
true if value is valid

Definition at line 392 of file Value.h.

References m_value, and agxData::Data::ptr().

Referenced by get().

◆ load()

static Value * agxData::Value::load ( agx::TiXmlElement *  eValue,
agx::Device device 
)
static

◆ print()

void agxData::Value::print ( ) const

◆ ptr() [1/2]

void * agxData::Value::ptr ( )

Definition at line 327 of file Value.h.

References m_value, and agxData::Data::ptr().

◆ ptr() [2/2]

const void * agxData::Value::ptr ( ) const
Returns
The value

Definition at line 328 of file Value.h.

References m_value, and agxData::Data::ptr().

Referenced by agxData::ValueT< T >::get().

◆ rebind()

virtual void agxData::Value::rebind ( )
overridevirtual

Rebind with the current auto-bind path.

Reimplemented from agx::Object.

Reimplemented in agxData::FunctionValue.

◆ removeListener()

void agxData::Value::removeListener ( EventListener *  listener)

◆ save()

virtual void agxData::Value::save ( agx::TiXmlElement *  eParent) const
overridevirtual

◆ set() [1/5]

template<typename T >
void agxData::Value::set ( const T &  value)

Definition at line 362 of file Value.h.

References agxAssert, agxCore::isShutdown(), m_format, set(), and setFormat().

◆ set() [2/5]

void agxData::Value::set ( const Value other)

Explicitly set the value, removes active binding and disables autobinding.

Referenced by agxData::ValueT< T >::set(), set(), and signal().

◆ set() [3/5]

void agxData::Value::set ( const ValueRef other)

Definition at line 356 of file Value.h.

References agx::ref_ptr< T >::get(), and set().

◆ set() [4/5]

void agxData::Value::set ( Value other)

Definition at line 346 of file Value.h.

References set().

◆ set() [5/5]

void agxData::Value::set ( ValueRef other)

Definition at line 351 of file Value.h.

References agx::ref_ptr< T >::get(), and set().

◆ setDefaultValue()

void agxData::Value::setDefaultValue ( )

Set the default value of the format.

◆ setExpression()

void agxData::Value::setExpression ( const agx::String expression)

Configure value using an expression.

Internal use only, deprecated syntax.

References agxData::getFormat(), and agxData::getType().

◆ setFormat()

void agxData::Value::setFormat ( agxData::Format format)

Referenced by set().

◆ signal()

template<typename T >
void agxData::Value::signal ( const T &  value)

Wrapper for this->getRootBinding()->set()

Definition at line 372 of file Value.h.

References getRootBinding(), and set().

Referenced by agxData::ValueT< T >::signal().

◆ snapshot()

virtual void agxData::Value::snapshot ( agx::TiXmlNode *  eParent,
const agx::String directory 
) const
overridevirtual

◆ toString()

agx::String agxData::Value::toString ( ) const

◆ transform()

template<typename T >
T agxData::Value::transform
inline

◆ unbind()

void agxData::Value::unbind ( bool  removeAutoBindPath = true)

Unbind, also disables auto-binding.

Member Data Documentation

◆ m_allocationIndex

agx::UInt32 agxData::Value::m_allocationIndex
protected

Definition at line 222 of file Value.h.

◆ m_binding

ValueRef agxData::Value::m_binding
protected

Definition at line 218 of file Value.h.

Referenced by getBinding().

◆ m_bindingListener

EventListener agxData::Value::m_bindingListener
protected

Definition at line 225 of file Value.h.

◆ m_bindPath

agx::Path agxData::Value::m_bindPath
protected

Definition at line 217 of file Value.h.

Referenced by getBindPath().

◆ m_children

ValuePtrVector agxData::Value::m_children
protected

Definition at line 219 of file Value.h.

◆ m_eventDispatch

EventDispatch agxData::Value::m_eventDispatch
protected

Definition at line 224 of file Value.h.

◆ m_format

FormatRef agxData::Value::m_format
protected

Definition at line 221 of file Value.h.

Referenced by get(), getFormat(), getType(), set(), and transform().

◆ m_restartIteration

bool agxData::Value::m_restartIteration
protected

Definition at line 223 of file Value.h.

◆ m_value

AbstractScalar agxData::Value::m_value
protected

Definition at line 220 of file Value.h.

Referenced by get(), isValid(), ptr(), and transform().

◆ updateEvent

Event agxData::Value::updateEvent

Triggered when the value is updated.

Definition at line 63 of file Value.h.


The documentation for this class was generated from the following file: