quarx
high performance processing frameworks of interconnectable DSP modules
All Classes Namespaces Files Functions Variables Typedefs Macros Pages
qx::link Class Referenceabstract

link defines a nodes input. More...

#include <qx.h>

+ Inheritance diagram for qx::link:
+ Collaboration diagram for qx::link:

Public Types

typedef std::deque< std::shared_ptr< node > > container
 
typedef promoted< int32_t > promoted
 
typedef promoted< std::string > promoted
 

Public Member Functions

void clear () noexcept
 
void clear () noexcept
 
virtual std::shared_ptr< nodeclone (node *parent) const =0
 
virtual const char * id () const noexcept
 
void ignore (promoted *value) noexcept
 
void ignore (promoted *value) noexcept
 
virtual bool inherits (const char *type) const noexcept
 
 link (const std::string &key, qx::out *const &value={})
 
virtual void notify (const int32_t &, const promoted &) noexcept
 
void obey (const std::initializer_list< promoted * > &values, bool initial_update=true) noexcept
 
void obey (const std::initializer_list< promoted * > &values, bool initial_update=true) noexcept
 
void obey (promoted *value, bool initial_update=true) noexcept
 
void obey (promoted *value, bool initial_update=true) noexcept
 
template<typename node_t , typename petty_t = node_t, typename = enable_if_base_of <node, node_t>>
 operator const node_t & () const
 
template<typename value_t , typename = enable_if_value<value_t>>
 operator const value_t & () const
 
 operator const value_t & () const noexcept
 
template<typename node_t , typename petty_t = node_t, typename = enable_if_base_of <node, node_t>>
 operator node_t & ()
 node derivate linkage explicit assignment (i.e. node= &out) More...
 
template<typename value_t , typename = enable_if_value<value_t>>
 operator value_t & ()
 
 operator value_t & () noexcept
 
template<typename value_t , typename = enable_if_value<value_t>>
std::decay_t< value_t > & operator* ()
 
template<typename value_t , typename = enable_if_value<value_t>>
const std::decay_t< value_t > & operator* () const
 
const value_t & operator* () const noexcept
 
value_t & operator* () noexcept
 
void operator+= (const value_t &value) noexcept
 
const value_t & operator-> () const noexcept
 
value_t & operator-> () noexcept
 
nodeoperator<< (const node &node)
 
template<typename value_t , typename = enable_if_value<value_t>>
bool operator== (const std::decay_t< value_t > &value) const
 
bool operator== (const value_t &value) const noexcept
 
nodeoperator[] (const std::string &path) const override
 
nodeoperator[] (size_t pos) const override
 
 qx_factory (quarx< node * >) quarx(const quarx &copy
 
 qx_factory_id (link) void operator
 assigns to an out, throws if node is not an out More...
 
void remove ()
 
virtual void remove (const promoted &) noexcept
 indicate promoted end-of-lifetime More...
 
virtual void remove (const promoted &) noexcept
 indicate promoted end-of-lifetime More...
 
void remove_all_listener () noexcept
 
virtual noderesize (size_t)
 
void trigger () noexcept
 
void trigger () noexcept
 
std::string unique (const std::string &key) const noexcept
 
else value::operator= (copy)
 

Static Public Member Functions

static bool static_inherits (const char *type) noexcept
 

Public Attributes

node copy attributes
 
promoted key
 name of node More...
 
std::set< listen< value_t > * > listeners
 
nodeparent
 
node parent
 
promoted path
 entire path of node in process network More...
 
std::set< promoted * > values
 
std::set< promoted * > values
 

Static Public Attributes

static const char * type
 quarx node type ID More...
 

Protected Types

template<typename base_t , typename derrived_t >
using enable_if_base_of = std::enable_if_t< std::is_base_of_v< std::decay_t< base_t >, std::decay_t< derrived_t > >>
 
template<typename value_t >
using enable_if_value = std::enable_if_t< std::is_same_v< std::decay_t< value_t >, int32_t >||std::is_same_v< std::decay_t< value_t >, double >||std::is_same_v< std::decay_t< value_t >, node * > >
 
typedef qx::promoted< node * > value
 value of this node More...
 

Detailed Description

link defines a nodes input.

It routes data from another quarx node.

Member Typedef Documentation

◆ container

typedef std::deque<std::shared_ptr<node> > qx::node::container
inherited

◆ enable_if_base_of

template<typename base_t , typename derrived_t >
using qx::node::enable_if_base_of = std::enable_if_t<std::is_base_of_v <std::decay_t<base_t>, std::decay_t<derrived_t> >>
protectedinherited

◆ enable_if_value

template<typename value_t >
using qx::node::enable_if_value = std::enable_if_t< std::is_same_v<std::decay_t<value_t>, int32_t> || std::is_same_v<std::decay_t<value_t>, double> || std::is_same_v<std::decay_t<value_t>, node*> >
protectedinherited

◆ promoted [1/2]

typedef promoted<int32_t > qx::listen< int32_t >::promoted
inherited

◆ promoted [2/2]

typedef promoted<std::string > qx::listen< std::string >::promoted
inherited

◆ value

typedef qx::promoted<node * > qx::quarx< node * >::value
protectedinherited

value of this node

Constructor & Destructor Documentation

◆ link()

qx::link::link ( const std::string &  key,
qx::out *const &  value = {} 
)
inline

Member Function Documentation

◆ clear() [1/2]

void qx::listen< std::string >::clear ( )
inlinenoexceptinherited

◆ clear() [2/2]

void qx::listen< int32_t >::clear ( )
inlinenoexceptinherited

◆ clone()

virtual std::shared_ptr<node> qx::node::clone ( node parent) const
pure virtualinherited

◆ id()

virtual const char* qx::node::id ( ) const
inlinevirtualnoexceptinherited

◆ ignore() [1/2]

void qx::listen< int32_t >::ignore ( promoted value)
inlinenoexceptinherited

◆ ignore() [2/2]

void qx::listen< std::string >::ignore ( promoted value)
inlinenoexceptinherited

◆ inherits()

virtual bool qx::node::inherits ( const char *  type) const
inlinevirtualnoexceptinherited

◆ notify()

virtual void qx::listen< int32_t >::notify ( const int32_t &  ,
const promoted  
)
inlinevirtualnoexceptinherited

◆ obey() [1/4]

void qx::listen< int32_t >::obey ( const std::initializer_list< promoted * > &  values,
bool  initial_update = true 
)
inlinenoexceptinherited

◆ obey() [2/4]

void qx::listen< std::string >::obey ( const std::initializer_list< promoted * > &  values,
bool  initial_update = true 
)
inlinenoexceptinherited

◆ obey() [3/4]

void qx::listen< int32_t >::obey ( promoted value,
bool  initial_update = true 
)
inlinenoexceptinherited

◆ obey() [4/4]

void qx::listen< std::string >::obey ( promoted value,
bool  initial_update = true 
)
inlinenoexceptinherited

◆ operator const node_t &()

template<typename node_t , typename petty_t = node_t, typename = enable_if_base_of <node, node_t>>
qx::node::operator const node_t & ( ) const
inlineinherited

◆ operator const value_t &() [1/2]

template<typename value_t , typename = enable_if_value<value_t>>
qx::node::operator const value_t & ( ) const
inlineinherited

◆ operator const value_t &() [2/2]

template<class value_t >
qx::promoted< value_t >::operator const value_t & ( ) const
inlinenoexceptinherited

◆ operator node_t &()

template<typename node_t , typename petty_t = node_t, typename = enable_if_base_of <node, node_t>>
qx::node::operator node_t & ( )
inlineinherited

node derivate linkage explicit assignment (i.e. node= &out)

◆ operator value_t &() [1/2]

template<typename value_t , typename = enable_if_value<value_t>>
qx::node::operator value_t & ( )
inlineinherited

◆ operator value_t &() [2/2]

template<class value_t >
qx::promoted< value_t >::operator value_t & ( )
inlinenoexceptinherited

◆ operator*() [1/4]

template<typename value_t , typename = enable_if_value<value_t>>
std::decay_t<value_t>& qx::node::operator* ( )
inlineinherited

◆ operator*() [2/4]

template<typename value_t , typename = enable_if_value<value_t>>
const std::decay_t<value_t>& qx::node::operator* ( ) const
inlineinherited

◆ operator*() [3/4]

template<class value_t >
const value_t& qx::promoted< value_t >::operator* ( ) const
inlinenoexceptinherited

◆ operator*() [4/4]

template<class value_t >
value_t& qx::promoted< value_t >::operator* ( )
inlinenoexceptinherited

◆ operator+=()

template<class value_t >
void qx::promoted< value_t >::operator+= ( const value_t &  value)
inlinenoexceptinherited

◆ operator->() [1/2]

template<class value_t >
const value_t& qx::promoted< value_t >::operator-> ( ) const
inlinenoexceptinherited

◆ operator->() [2/2]

template<class value_t >
value_t& qx::promoted< value_t >::operator-> ( )
inlinenoexceptinherited

◆ operator<<()

node& qx::quarx< node * >::operator<< ( const node node)
inlineinherited

◆ operator==() [1/2]

template<typename value_t , typename = enable_if_value<value_t>>
bool qx::node::operator== ( const std::decay_t< value_t > &  value) const
inlineinherited

◆ operator==() [2/2]

template<class value_t >
bool qx::promoted< value_t >::operator== ( const value_t &  value) const
inlinenoexceptinherited

◆ operator[]() [1/2]

node& qx::quarx< node * >::operator[] ( const std::string &  path) const
inlineoverridevirtualinherited

Implements qx::node.

◆ operator[]() [2/2]

node& qx::quarx< node * >::operator[] ( size_t  pos) const
inlineoverridevirtualinherited

Implements qx::node.

◆ qx_factory()

qx::quarx< node * >::qx_factory ( quarx< node * >  ) const &
inherited

◆ qx_factory_id()

qx::link::qx_factory_id ( link  )

assigns to an out, throws if node is not an out

◆ remove() [1/3]

void qx::node::remove ( )
inherited

◆ remove() [2/3]

virtual void qx::listen< int32_t >::remove ( const promoted )
inlinevirtualnoexceptinherited

indicate promoted end-of-lifetime

◆ remove() [3/3]

virtual void qx::listen< std::string >::remove ( const promoted )
inlinevirtualnoexceptinherited

indicate promoted end-of-lifetime

◆ remove_all_listener()

template<class value_t >
void qx::promoted< value_t >::remove_all_listener ( )
inlinenoexceptinherited
+ Here is the caller graph for this function:

◆ resize()

virtual node& qx::node::resize ( size_t  )
inlinevirtualinherited

◆ static_inherits()

static bool qx::node::static_inherits ( const char *  type)
inlinestaticnoexceptinherited

◆ trigger() [1/2]

void qx::listen< int32_t >::trigger ( )
inlinenoexceptinherited

◆ trigger() [2/2]

void qx::listen< std::string >::trigger ( )
inlinenoexceptinherited

◆ unique()

std::string qx::quarx< node * >::unique ( const std::string &  key) const
inlinenoexceptinherited

◆ value::operator=()

else qx::quarx< node * >::value::operator= ( copy  )
inherited

Member Data Documentation

◆ attributes

node copy qx::quarx< node * >::attributes
inherited

◆ key

promoted qx::node::key
inherited

name of node

◆ listeners

template<class value_t >
std::set<listen <value_t>*> qx::promoted< value_t >::listeners
inherited

◆ parent [1/2]

node* qx::quarx< node * >::parent
inherited

◆ parent [2/2]

node qx::quarx< node * >::parent
inherited

◆ path

promoted qx::node::path
inherited

entire path of node in process network

◆ type

const char* qx::quarx< node * >::type
staticinherited

quarx node type ID

◆ values [1/2]

std::set<promoted*> qx::listen< int32_t >::values
inherited

◆ values [2/2]

std::set<promoted*> qx::listen< std::string >::values
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Dec 17 2021

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.