AGX Dynamics 2.42.3.1
Loading...
Searching...
No Matches
agx::Parameter Class Referenceabstract

A representation of a task/kernel parameter, which can be bound using a string path or explicitly to a data node. More...

#include <Parameter.h>

+ Inheritance diagram for agx::Parameter:

Public Types

typedef Event1< Parameter * > Event
 
enum  MetaType {
  SCALAR , ARRAY , POINTER , ENTITY_DATA ,
  ENTITY_PTR , ENTITY_INSTANCE , UNRESOLVED
}
 Specify which kind of parameter. More...
 
- Public Types inherited from agx::Object
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

void bind (agx::Object *binding)
 Set explicit binding.
 
void bind (const agx::Path &path)
 Set parameter bind path.
 
virtual void commit ()=0
 
UInt8 getAccessMode () const
 
agx::Object * getBinding ()
 
const agx::Object * getBinding () const
 
const agx::Path & getBindPath () const
 
agxData::Format * getFormat ()
 
const agxData::Format * getFormat () const
 
size_t getIndex () const
 
MetaType getMetaType () const
 
const agx::String & getMetaTypeName () const
 
virtual Object * getResourceImpl (const Path &path, agx::Model *model) override
 
agx::Task * getTask ()
 
const agx::Task * getTask () const
 
virtual agxData::Type * getType ()
 
virtual const agxData::Type * getType () const
 
virtual bool hasGlobalResult () const
 
bool isRequired () const
 
virtual bool isValid () const =0
 
bool needCommit ()
 
bool needUpdate ()
 
virtual void rebind () override
 
void set (agx::Object *binding)
 Set the parameter, alias for bind.
 
void setRequired (bool flag)
 Set if the parameter is required, default is true.
 
void unbind ()
 Remove current binding and bind path.
 
virtual void update ()=0
 
- 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::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 Public Member Functions inherited from agx::Object
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)
 

Public Attributes

Event bindEvent
 
Event unbindEvent
 
Event updateEvent
 

Protected Member Functions

 Parameter (Model *model, MetaType type, const Name &name, agxData::Format *format, UInt8 accessMode, const Path &bindPath=Path())
 
virtual ~Parameter ()
 
virtual void _bind (Object *binding)=0
 
- 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

const UInt8 m_accessMode
 
ObjectObserver m_binding
 
Path m_bindPath
 
agxData::FormatRef m_format
 
size_t m_index
 
UInt8 m_metaType
 
bool m_needCommit
 
bool m_needUpdate
 
bool m_required
 
Task * m_task
 
- 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 DeleteHandler * getDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 

Detailed Description

A representation of a task/kernel parameter, which can be bound using a string path or explicitly to a data node.

Definition at line 61 of file Parameter.h.

Member Typedef Documentation

◆ Event

Definition at line 66 of file Parameter.h.

Member Enumeration Documentation

◆ MetaType

Specify which kind of parameter.

Enumerator
SCALAR 
ARRAY 
POINTER 
ENTITY_DATA 
ENTITY_PTR 
ENTITY_INSTANCE 
UNRESOLVED 

Definition at line 72 of file Parameter.h.

Constructor & Destructor Documentation

◆ Parameter()

agx::Parameter::Parameter ( Model *  model,
MetaType  type,
const Name &  name,
agxData::Format *  format,
UInt8  accessMode,
const Path &  bindPath = Path() 
)
protected

◆ ~Parameter()

virtual agx::Parameter::~Parameter ( )
protectedvirtual

Member Function Documentation

◆ _bind()

◆ bind() [1/2]

void agx::Parameter::bind ( agx::Object *  binding)

Set explicit binding.

◆ bind() [2/2]

void agx::Parameter::bind ( const agx::Path &  path)

Set parameter bind path.

◆ ClassModel()

static agx::Model * agx::Parameter::ClassModel ( )
static

◆ commit()

◆ getAccessMode()

UInt8 agx::Parameter::getAccessMode ( ) const
Returns
The access mode of the parameter.

Definition at line 702 of file Parameter.h.

References m_accessMode.

◆ getBinding() [1/2]

Object * agx::Parameter::getBinding ( )
Returns
The current parameter binding.

Definition at line 704 of file Parameter.h.

References m_binding.

◆ getBinding() [2/2]

const Object * agx::Parameter::getBinding ( ) const

Definition at line 705 of file Parameter.h.

References m_binding.

◆ getBindPath()

const Path & agx::Parameter::getBindPath ( ) const
Returns
The bind path of the parameter.

Definition at line 703 of file Parameter.h.

References m_bindPath.

◆ getFormat() [1/2]

agxData::Format * agx::Parameter::getFormat ( )
Returns
The parameter format.

Definition at line 700 of file Parameter.h.

References m_format.

◆ getFormat() [2/2]

const agxData::Format * agx::Parameter::getFormat ( ) const

Definition at line 701 of file Parameter.h.

References m_format.

◆ getIndex()

size_t agx::Parameter::getIndex ( ) const
Returns
The parameter index.

Definition at line 697 of file Parameter.h.

References m_index.

◆ getMetaType()

Parameter::MetaType agx::Parameter::getMetaType ( ) const
Returns
The parameter meta type.

Definition at line 698 of file Parameter.h.

References m_metaType.

◆ getMetaTypeName()

const agx::String & agx::Parameter::getMetaTypeName ( ) const
Returns
The parameter meta type as a string.

◆ getResourceImpl()

virtual Object * agx::Parameter::getResourceImpl ( const Path &  path,
agx::Model *  model 
)
overridevirtual

◆ getTask() [1/2]

Task * agx::Parameter::getTask ( )
Returns
The task in which the parameter list contain this parameter.

Definition at line 695 of file Parameter.h.

References m_task.

◆ getTask() [2/2]

const Task * agx::Parameter::getTask ( ) const

Definition at line 696 of file Parameter.h.

References m_task.

◆ getType() [1/2]

agxData::Type * agx::Parameter::getType ( )
virtual
Returns
The parameter type.

Reimplemented in agx::UnresolvedParameter, and agx::ArrayParameter.

Definition at line 706 of file Parameter.h.

References m_format.

◆ getType() [2/2]

const agxData::Type * agx::Parameter::getType ( ) const
virtual

Reimplemented in agx::UnresolvedParameter, and agx::ArrayParameter.

Definition at line 707 of file Parameter.h.

References m_format.

◆ hasGlobalResult()

virtual bool agx::Parameter::hasGlobalResult ( ) const
virtual
Returns
True if the parameter has a global result

Reimplemented in agx::ArrayParameter, and agx::EntityDataParameter.

◆ isRequired()

bool agx::Parameter::isRequired ( ) const
Returns
True if the parameter is required.

Definition at line 699 of file Parameter.h.

References m_required.

Referenced by agx::PointerParameter::get().

◆ isValid()

virtual bool agx::Parameter::isValid ( ) const
pure virtual

◆ needCommit()

bool agx::Parameter::needCommit ( )

Definition at line 709 of file Parameter.h.

References m_needCommit.

◆ needUpdate()

bool agx::Parameter::needUpdate ( )

Definition at line 708 of file Parameter.h.

References m_needUpdate.

◆ rebind()

virtual void agx::Parameter::rebind ( )
overridevirtual

Reimplemented from agx::Object.

◆ set()

void agx::Parameter::set ( agx::Object *  binding)

Set the parameter, alias for bind.

◆ setRequired()

void agx::Parameter::setRequired ( bool  flag)

Set if the parameter is required, default is true.

◆ unbind()

void agx::Parameter::unbind ( )

Remove current binding and bind path.

Referenced by agx::ScalarParameter::set().

◆ update()

Member Data Documentation

◆ bindEvent

Event agx::Parameter::bindEvent

Definition at line 67 of file Parameter.h.

◆ m_accessMode

const UInt8 agx::Parameter::m_accessMode
protected

Definition at line 203 of file Parameter.h.

Referenced by getAccessMode().

◆ m_binding

ObjectObserver agx::Parameter::m_binding
protected

Definition at line 202 of file Parameter.h.

Referenced by agx::PointerParameter::get(), getBinding(), and agx::ScalarParameter::set().

◆ m_bindPath

Path agx::Parameter::m_bindPath
protected

Definition at line 201 of file Parameter.h.

Referenced by getBindPath().

◆ m_format

agxData::FormatRef agx::Parameter::m_format
protected

◆ m_index

size_t agx::Parameter::m_index
protected

Definition at line 199 of file Parameter.h.

Referenced by getIndex().

◆ m_metaType

UInt8 agx::Parameter::m_metaType
protected

Definition at line 205 of file Parameter.h.

Referenced by getMetaType().

◆ m_needCommit

bool agx::Parameter::m_needCommit
protected

Definition at line 207 of file Parameter.h.

Referenced by needCommit().

◆ m_needUpdate

bool agx::Parameter::m_needUpdate
protected

Definition at line 206 of file Parameter.h.

Referenced by needUpdate().

◆ m_required

bool agx::Parameter::m_required
protected

Definition at line 204 of file Parameter.h.

Referenced by agx::ArrayParameter::get(), and isRequired().

◆ m_task

Task* agx::Parameter::m_task
protected

Definition at line 198 of file Parameter.h.

Referenced by getTask().

◆ unbindEvent

Event agx::Parameter::unbindEvent

Definition at line 68 of file Parameter.h.

◆ updateEvent

Event agx::Parameter::updateEvent

Definition at line 69 of file Parameter.h.


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