SolarCapture C Bindings
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
Data Structures | Macros | Typedefs | Functions
ext_node.h File Reference

Interface for writing custom nodes. More...

Go to the source code of this file.

Data Structures

struct  sc_node
 Description of a node. More...
 
struct  sc_node_factory
 Struct to hold information about how to create an instance of this node. More...
 
struct  sc_node_type
 Describes a type of node. More...
 

Macros

#define sc_node_set_error(node, errno_code,...)
 Set error from within the implementation of a node. More...
 
#define sc_node_fwd_error(node, rc)   __sc_node_fwd_error((node), __FILE__, __LINE__, __func__, (rc))
 Forward error from a failed sc call. More...
 

Typedefs

typedef int( sc_node_init_fn )(struct sc_node *node, const struct sc_attr *attr, const struct sc_node_factory *)
 Signature of function to initialise a node. More...
 
typedef int( sc_node_prep_fn )(struct sc_node *node, const struct sc_node_link *const *links, int n_links)
 Signature of nt_prep_fn function. More...
 
typedef void( sc_node_pkts_fn )(struct sc_node *node, struct sc_packet_list *packet_list)
 Signature of nt_pkts_fn function. More...
 
typedef int( sc_node_add_link_fn )(struct sc_node *from_node, const char *link_name, struct sc_node *to_node, const char *to_name_opt)
 Signature of nt_add_link_fn function. More...
 
typedef struct sc_node *( sc_node_select_subnode_fn )(struct sc_node *node, const char *name, char **new_name_out)
 Signature of nt_select_subnode_fn function. More...
 
typedef void( sc_node_end_of_stream_fn )(struct sc_node *node)
 Signature of nt_end_of_stream_fn function. More...
 

Functions

int sc_node_type_alloc (struct sc_node_type **nt_out, const struct sc_attr *attr_opt, const struct sc_node_factory *factory)
 Allocate an sc_node_type instance. More...
 
void sc_forward_list (struct sc_node *node, const struct sc_node_link *link, struct sc_packet_list *pl)
 Forward a list of packets. More...
 
void sc_forward (struct sc_node *node, const struct sc_node_link *link, struct sc_packet *packet)
 Forward a single packet. More...
 
int sc_node_init_get_arg_int (int *v_out, struct sc_node *node, const char *name, int v_default)
 Get an integer argument. More...
 
int sc_node_init_get_arg_str (const char **v_out, struct sc_node *node, const char *name, const char *v_default)
 Get an string argument. More...
 
int sc_node_init_get_arg_obj (struct sc_object **obj_out, struct sc_node *node, const char *name, enum sc_object_type obj_type)
 Get an sc_object argument. More...
 
int sc_node_init_get_arg_dbl (double *v_out, struct sc_node *node, const char *name, double v_default)
 Get a double argument. More...
 
const struct sc_node_linksc_node_prep_get_link (struct sc_node *node, const char *link_name)
 Find a named outgoing link. More...
 
const struct sc_node_linksc_node_prep_get_link_or_free (struct sc_node *node, const char *link_name)
 Find a named outgoing link or return a link for freeing. More...
 
int sc_node_prep_check_links (struct sc_node *node)
 Check the node's links for any unused links. More...
 
int sc_node_prep_get_pool (struct sc_pool **pool_out, const struct sc_attr *attr, struct sc_node *node, const struct sc_node_link *const *links, int n_links)
 Get a packet pool that can be used to obtain empty packet buffers that can be passed to any of the given set of links. More...
 
void sc_node_link_end_of_stream (struct sc_node *node, const struct sc_node_link *link)
 Indicate end-of-stream on a link. More...
 
int sc_node_export_state (struct sc_node *node, const char *type_name, int type_size, void *pp_area)
 Export dynamic state to solar_capture_monitor. More...
 

Detailed Description

Interface for writing custom nodes.