CoreFlow 1.0.0
A modern orchestration and execution runtime
Loading...
Searching...
No Matches
coreflow::Node Class Reference

#include <vx_node.h>

Inheritance diagram for coreflow::Node:
coreflow::Reference

Public Member Functions

 Node (vx_context context, vx_reference scope)
 Construct a new Node object.
 
 ~Node ()
 Destroy the Node object.
 
void setParameter (vx_uint32 index, vx_reference value)
 Node parameter setter, no check.
 
vx_status setTarget (vx_enum target_enum, const char *target_string)
 Set the target for the node.
 
vx_size localDataSize () const
 Get the local data size of the node.
 
vx_ptr_t localDataPtr () const
 Get the local data pointer of the node.
 
vx_size globalDataSize () const
 Get the global data size of the node.
 
vx_ptr_t globalDataPtr () const
 Get the global data pointer of the node.
 
vx_border_t border () const
 Get the border mode of the node.
 
vx_uint32 numParams () const
 Get the number of parameters of the node.
 
vx_perf_t performance () const
 Get the performance of the node.
 
vx_status getStatus () const
 Get the status of the node.
 
vx_status setCallbackFn (vx_nodecomplete_f callback)
 Set the Node Callback Fn object.
 
vx_bool isReplicated () const
 Is the node replicated?
 
const vx_boolreplicatedFlags () const
 Get the replicated parameters flags.
 
vx_enum getState () const
 Get the state of the node.
 
vx_bool validRectReset () const
 Get the valid rectangle reset flag.
 
cl_command_queue clCommandQueue () const
 Get the OpenCL command queue for the node.
 
vx_nodecomplete_f callbackFn () const
 Get the callback function for the node.
 
void destruct () override final
 Used to completely destroy a node.
 
vx_status removeNode ()
 Used to remove a node from a graph.
 
vx_uint32 refCount () const
 Returns the reference count of the object.
 
vx_enum dataType () const
 Returns the type of the reference.
 
const vx_charrefName () const
 Returns the name of the reference.
 
void setName (const vx_char *name)
 Sets the name of the reference.
 
vx_uint32 incrementReference (vx_reftype_e refType)
 Increments the ref count.
 
vx_uint32 decrementReference (vx_reftype_e refType)
 Decrements the ref count.
 
vx_uint32 totalReferenceCount ()
 Returns the total reference count of the object.
 
void initReferenceForDelay (vx_delay delay, vx_int32 index)
 Used to initialize any vx_reference as a delay element.
 

Static Public Member Functions

static vx_node createNode (vx_graph graph, vx_kernel kernel)
 Create a new node.
 
static vx_node createNode (vx_graph graph, vx_kernel kernel, std::initializer_list< vx_reference > params)
 Create a new node with parameters.
 
static vx_status replicateNode (vx_graph graph, vx_node first_node, vx_bool *replicate, vx_uint32 number_of_parameters)
 Replicate the node in the graph.
 
static vx_status setChildGraphOfNode (vx_node node, vx_graph graph)
 Used to set the graph as a child of the node within another graph.
 
static vx_graph getChildGraphOfNode (vx_node node)
 Retrieves the handle of the child graph, if it exists.
 
static void printNode (vx_node node)
 Print node object.
 
static vx_reference createReference (vx_context context, vx_enum type, vx_reftype_e refType, vx_reference scope)
 Used to create a reference.
 
static void printReference (vx_reference ref)
 Prints the values of a reference.
 
static vx_bool isValidReference (vx_reference ref)
 Used to validate everything but vx_context, vx_image and vx_buffer.
 
static vx_bool isValidReference (vx_reference ref, vx_enum type)
 Used to validate everything but vx_context, vx_image and vx_buffer.
 
static vx_size sizeOfType (vx_enum type)
 Returns the number of bytes in the internal structure for a given type.
 
static vx_status releaseReference (vx_reference *ref, vx_enum type, vx_reftype_e reftype, vx_destructor_f special_destructor)
 Used to destroy a reference.
 

Public Attributes

vx_kernel kernel
 The pointer to the kernel structure.
 
vx_reference parameters [VX_INT_MAX_PARAMS]
 The list of references which are the values to pass to the kernels.
 
vx_status status
 Status code returned from the last execution of the kernel.
 
vx_perf_t perf
 The performance logging variable.
 
vx_nodecomplete_f callback
 A callback to call when the node is complete.
 
vx_bool local_data_change_is_enabled
 Enable to change read-only attributes (VX_NODE_LOCAL_DATA_SIZE, VX_NODE_LOCAL_DATA_PTR) for user-kernel initialization callback needs.
 
vx_bool local_data_set_by_implementation
 Indicates that attributes (VX_NODE_LOCAL_DATA_SIZE, VX_NODE_LOCAL_DATA_PTR) were set by implementation, but not user-kernel initialization callback.
 
vx_graph graph
 A back reference to the parent graph.
 
vx_bool visited
 Used to keep track of visitation during execution and verification.
 
vx_bool executed
 This is used to determine if the node has executed.
 
vx_kernel_attr_t attributes
 The instance version of the attributes of the kernel.
 
vx_uint32 affinity
 The index of the target to execute the kernel on.
 
vx_graph child
 The child graph of the node.
 
vx_cost_factors_t costs
 The node cost factors.
 
vx_bool is_replicated
 The node replica flag.
 
vx_bool replicated_flags [VX_INT_MAX_PARAMS]
 The replicated parameters flags.
 
vx_node_state_e state
 The node state.
 
struct _vx_platform * platform
 Platform for ICD compatibility.
 
vx_uint32 magic
 Used to validate references, must be set to VX_MAGIC.
 
vx_enum type
 Set to an enum value in vx_type_e.
 
vx_context context
 Pointer to the top level context. If this reference is the context, this will be NULL.
 
vx_reference scope
 The pointer to the object's scope parent. When virtual objects are scoped within a graph, this will point to that parent graph. This is left generic to allow future scoping variations. By default scope should be the same as context.
 
vx_uint32 external_count
 The count of the number of users with this reference. When greater than 0, this can not be freed. When zero, the value can be considered inaccessible.
 
vx_uint32 internal_count
 The count of the number of framework references. When greater than 0, this can not be freed.
 
vx_uint32 read_count
 The number of times the object has been read (in some portion)
 
vx_uint32 write_count
 The number of times the object has been written to (in some portion)
 
vx_sem_t lock
 The reference lock which is used to protect access to "in-fly" data.
 
void * reserved
 A reserved field which can be used to store anonymous data.
 
vx_uint32 index
 A field which can be used to store a temporary, per-graph index.
 
vx_bool extracted
 This indicates if the object was extracted from another object.
 
vx_bool is_virtual
 This indicates if the object is virtual or not.
 
vx_delay delay
 
vx_int32 delay_slot_index
 
vx_bool is_accessible
 This indicates that if the object is virtual whether it is accessible at the moment or not.
 
vx_char name [VX_MAX_REFERENCE_NAME]
 The reference name.
 

Member Data Documentation

◆ affinity

vx_uint32 coreflow::Node::affinity

The index of the target to execute the kernel on.

◆ attributes

vx_kernel_attr_t coreflow::Node::attributes

The instance version of the attributes of the kernel.

◆ callback

vx_nodecomplete_f coreflow::Node::callback

A callback to call when the node is complete.

◆ child

vx_graph coreflow::Node::child

The child graph of the node.

◆ context

vx_context coreflow::Reference::context
inherited

Pointer to the top level context. If this reference is the context, this will be NULL.

◆ costs

vx_cost_factors_t coreflow::Node::costs

The node cost factors.

◆ delay

vx_delay coreflow::Reference::delay
inherited

◆ delay_slot_index

vx_int32 coreflow::Reference::delay_slot_index
inherited

◆ executed

vx_bool coreflow::Node::executed

This is used to determine if the node has executed.

◆ external_count

vx_uint32 coreflow::Reference::external_count
inherited

The count of the number of users with this reference. When greater than 0, this can not be freed. When zero, the value can be considered inaccessible.

◆ extracted

vx_bool coreflow::Reference::extracted
inherited

This indicates if the object was extracted from another object.

◆ graph

vx_graph coreflow::Node::graph

A back reference to the parent graph.

◆ index

vx_uint32 coreflow::Reference::index
inherited

A field which can be used to store a temporary, per-graph index.

◆ internal_count

vx_uint32 coreflow::Reference::internal_count
inherited

The count of the number of framework references. When greater than 0, this can not be freed.

◆ is_accessible

vx_bool coreflow::Reference::is_accessible
inherited

This indicates that if the object is virtual whether it is accessible at the moment or not.

◆ is_replicated

vx_bool coreflow::Node::is_replicated

The node replica flag.

◆ is_virtual

vx_bool coreflow::Reference::is_virtual
inherited

This indicates if the object is virtual or not.

◆ kernel

vx_kernel coreflow::Node::kernel

The pointer to the kernel structure.

◆ local_data_change_is_enabled

vx_bool coreflow::Node::local_data_change_is_enabled

Enable to change read-only attributes (VX_NODE_LOCAL_DATA_SIZE, VX_NODE_LOCAL_DATA_PTR) for user-kernel initialization callback needs.

◆ local_data_set_by_implementation

vx_bool coreflow::Node::local_data_set_by_implementation

Indicates that attributes (VX_NODE_LOCAL_DATA_SIZE, VX_NODE_LOCAL_DATA_PTR) were set by implementation, but not user-kernel initialization callback.

◆ lock

vx_sem_t coreflow::Reference::lock
inherited

The reference lock which is used to protect access to "in-fly" data.

◆ magic

vx_uint32 coreflow::Reference::magic
inherited

Used to validate references, must be set to VX_MAGIC.

◆ name

vx_char coreflow::Reference::name[VX_MAX_REFERENCE_NAME]
inherited

The reference name.

◆ parameters

vx_reference coreflow::Node::parameters[VX_INT_MAX_PARAMS]

The list of references which are the values to pass to the kernels.

◆ perf

vx_perf_t coreflow::Node::perf

The performance logging variable.

◆ platform

struct _vx_platform* coreflow::Reference::platform
inherited

Platform for ICD compatibility.

◆ read_count

vx_uint32 coreflow::Reference::read_count
inherited

The number of times the object has been read (in some portion)

◆ replicated_flags

vx_bool coreflow::Node::replicated_flags[VX_INT_MAX_PARAMS]

The replicated parameters flags.

◆ reserved

void* coreflow::Reference::reserved
inherited

A reserved field which can be used to store anonymous data.

◆ scope

vx_reference coreflow::Reference::scope
inherited

The pointer to the object's scope parent. When virtual objects are scoped within a graph, this will point to that parent graph. This is left generic to allow future scoping variations. By default scope should be the same as context.

◆ state

vx_node_state_e coreflow::Node::state

The node state.

◆ status

vx_status coreflow::Node::status

Status code returned from the last execution of the kernel.

◆ type

vx_enum coreflow::Reference::type
inherited

Set to an enum value in vx_type_e.

◆ visited

vx_bool coreflow::Node::visited

Used to keep track of visitation during execution and verification.

◆ write_count

vx_uint32 coreflow::Reference::write_count
inherited

The number of times the object has been written to (in some portion)