Csilk 0.2.1
A lightweight, high-performance C HTTP web framework
Loading...
Searching...
No Matches
csilk_wf_node_t Struct Reference

A single node in a workflow DAG. Each node wraps a handler function with optional edges, error handling, dynamic routing, and timeout support. More...

Collaboration diagram for csilk_wf_node_t:

Data Fields

char * id
 
int index
 
csilk_wf_handler_t handler
 
void * user_data
 
csilk_wf_edge_tedges
 
size_t edge_count
 
size_t edge_capacity
 
int incoming_count
 
int is_entry
 
csilk_wf_node_t * error_target
 
csilk_wf_router_t router_fn
 
csilk_wf_join_policy_t join_policy
 
int timeout_ms
 
int is_interactive
 
char * output_schema
 
int max_retries
 
int retry_delay_ms
 
int is_remote
 
void(* user_data_free )(void *)
 

Detailed Description

A single node in a workflow DAG. Each node wraps a handler function with optional edges, error handling, dynamic routing, and timeout support.

Opaque handle for a single node in a workflow.

Field Documentation

◆ edge_capacity

size_t csilk_wf_node_t::edge_capacity

Allocated edge array capacity.

◆ edge_count

size_t csilk_wf_node_t::edge_count

Number of outgoing edges.

◆ edges

csilk_wf_edge_t* csilk_wf_node_t::edges

Outgoing edges (conditions leading to next nodes).

◆ error_target

csilk_wf_node_t* csilk_wf_node_t::error_target

Fallback node on handler failure (NULL output).

◆ handler

csilk_wf_handler_t csilk_wf_node_t::handler

Node execution callback.

◆ id

char* csilk_wf_node_t::id

Unique string identifier.

◆ incoming_count

int csilk_wf_node_t::incoming_count

Number of incoming edges (for join tracking).

◆ index

int csilk_wf_node_t::index

Internal array index for tracking in context.

◆ is_entry

int csilk_wf_node_t::is_entry

Explicit entry point flag.

◆ is_interactive

int csilk_wf_node_t::is_interactive

Requires manual signal to proceed.

◆ is_remote

int csilk_wf_node_t::is_remote

Offload to remote worker via MQ.

◆ join_policy

csilk_wf_join_policy_t csilk_wf_node_t::join_policy

AND (wait for all) or OR (fire on any).

◆ max_retries

int csilk_wf_node_t::max_retries

Max automatic retry attempts.

◆ output_schema

char* csilk_wf_node_t::output_schema

JSON Schema for output validation.

◆ retry_delay_ms

int csilk_wf_node_t::retry_delay_ms

Delay between retries.

◆ router_fn

csilk_wf_router_t csilk_wf_node_t::router_fn

Dynamic router: overrides edges when set.

◆ timeout_ms

int csilk_wf_node_t::timeout_ms

Per-node execution timeout (0 = no timeout).

◆ user_data

void* csilk_wf_node_t::user_data

Opaque context for the handler.

◆ user_data_free

void(* csilk_wf_node_t::user_data_free) (void *)

Called by node_free to free user_data.


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