Psyllid  v1.12.4
Project 8 Data Acquisisition Software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
node_builder Class Referenceabstract

Holds node configuration and can be used to create node classes and node binding classes. More...

#include <node_builder.hh>

Inheritance diagram for node_builder:
Inheritance graph

Public Member Functions

 node_builder (node_binding *a_binding)
 
virtual ~node_builder ()
 
node_builderoperator= (const node_builder &)
 
const node_bindingbinding () const
 
virtual midge::node * build ()=0
 
void configure_builder (const scarab::param_node &a_config)
 
void replace_builder_config (const scarab::param_node &a_config)
 
void dump_builder_config (scarab::param_node &a_config)
 
virtual void apply_config (midge::node *a_node, const scarab::param_node &a_config) const
 
virtual void dump_config (const midge::node *a_node, scarab::param_node &a_config) const
 
virtual bool run_command (midge::node *a_node, const std::string &a_cmd, const scarab::param_node &a_args) const
 
- Public Member Functions inherited from node_binding
 node_binding ()
 
virtual ~node_binding ()
 
node_bindingoperator= (const node_binding &a_rhs)
 
virtual node_bindingclone () const =0
 

Protected Member Functions

 snake_case_mv_referrable (std::string, name)
 

Protected Attributes

node_bindingf_binding
 
scarab::param_node f_config
 

Detailed Description

Holds node configuration and can be used to create node classes and node binding classes.

Author
N. S. Oblath

stream_manager creates a node_builder instance for every node in a stream and passes the node configuration to the node_builder. Fresh copies of a node class and a node binding class can then be made from these node_builder classes.

Definition at line 107 of file node_builder.hh.

Constructor & Destructor Documentation

◆ node_builder()

node_builder ( node_binding a_binding)

Definition at line 32 of file node_builder.cc.

◆ ~node_builder()

~node_builder ( )
virtual

Definition at line 40 of file node_builder.cc.

Member Function Documentation

◆ apply_config()

void apply_config ( midge::node *  a_node,
const scarab::param_node &  a_config 
) const
inlinevirtual

Applies the builder's configuration information to the given node Throws psyllid::error if the node is of the wrong type or if applying the configuration fails

Implements node_binding.

Definition at line 291 of file node_builder.hh.

◆ binding()

const node_binding & binding ( ) const
inline

Definition at line 266 of file node_builder.hh.

◆ build()

virtual midge::node* build ( )
pure virtual

◆ configure_builder()

void configure_builder ( const scarab::param_node &  a_config)
inline

Definition at line 271 of file node_builder.hh.

◆ dump_builder_config()

void dump_builder_config ( scarab::param_node &  a_config)
inline

Definition at line 284 of file node_builder.hh.

◆ dump_config()

void dump_config ( const midge::node *  a_node,
scarab::param_node &  a_config 
) const
inlinevirtual

Dumps the configuration from the given node and returns it to the caller; does not affect the builder's configuration information Throws psyllid::error if the node is the wrong type or if the extraction fails

Implements node_binding.

Definition at line 297 of file node_builder.hh.

◆ operator=()

node_builder & operator= ( const node_builder a_rhs)

Definition at line 45 of file node_builder.cc.

◆ replace_builder_config()

void replace_builder_config ( const scarab::param_node &  a_config)
inline

Definition at line 277 of file node_builder.hh.

◆ run_command()

bool run_command ( midge::node *  a_node,
const std::string &  a_cmd,
const scarab::param_node &  a_args 
) const
inlinevirtual

Calls a command on the given node Throws psyllid::error if the command fails, and returns false if the command is unrecognized

Implements node_binding.

Definition at line 303 of file node_builder.hh.

◆ snake_case_mv_referrable()

snake_case_mv_referrable ( std::string  ,
name   
)
protected

Member Data Documentation

◆ f_binding

node_binding* f_binding
protected

Definition at line 118 of file node_builder.hh.

◆ f_config

scarab::param_node f_config
protected

Definition at line 128 of file node_builder.hh.


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