Flux Reference Manual |
---|
flux-comm —
#define FLUX_COMM (comm) struct FluxComm; void flux_comm_init (FluxComm *comm, FluxIO *io); FluxComm* flux_comm_new (FluxIO *io); void flux_comm_finalize (FluxObject *obj); void flux_comm_enqueue_full (FluxComm *comm, FluxTree *tree, FluxCommOrder order, FluxCommSentFunc *func, gpointer func_data); void flux_comm_enqueue (FluxComm *comm, FluxTree *tree); FluxTree* flux_comm_dequeue (FluxComm *comm); void flux_comm_flush (FluxComm *comm); void flux_comm_reset (FluxComm *comm); FluxIO* flux_comm_get_io (FluxComm *comm); void flux_comm_set_dequeue_func (FluxComm *comm, FluxCommDequeueFunc *func, gpointer data); void flux_comm_set_limits (FluxComm *c, gulong nodes, gulong size, gulong depth); void flux_comm_get_limits (FluxComm *c, gulong *nodes, gulong *size, gulong *depth); void flux_comm_set_auto_flush (FluxComm *comm, gboolean auto_flush);
struct FluxComm { FluxObject object; FluxIO *io; FluxTree *queue_in, *queue_out; FluxTree *root_in, *root_out; FluxTree *node_in, *node_out; FluxCommSentFunc *sent_out_func; gpointer sent_out_func_data; FluxTree *sent_func_tree; gboolean recursing; gboolean do_auto_flush; guint32 block_in_size, block_out_size; guint32 block_in_bytes_left, block_out_bytes_left; guint32 node_in_bytes_left, node_out_bytes_left; guint32 block_in_level, block_out_level; /* Breadth-first traversal */ guint16 state_in : 2; /* None, block header, node header, node data */ guint16 state_out : 2; guint16 order_in : 1; guint16 order_out : 1; guint16 trans_in, trans_out; guint32 block_nodes_max, block_size_max, block_depth_max; guint16 trans_last; FluxCommDequeueFunc *dequeue_func; gpointer dequeue_func_data; };
void flux_comm_enqueue_full (FluxComm *comm, FluxTree *tree, FluxCommOrder order, FluxCommSentFunc *func, gpointer func_data);
comm : | |
tree : | |
order : | |
func : | |
func_data : |
void flux_comm_set_dequeue_func (FluxComm *comm, FluxCommDequeueFunc *func, gpointer data);
comm : | |
func : | |
data : |
void flux_comm_set_limits (FluxComm *c, gulong nodes, gulong size, gulong depth);
c : | |
nodes : | |
size : | |
depth : |
void flux_comm_get_limits (FluxComm *c, gulong *nodes, gulong *size, gulong *depth);
c : | |
nodes : | |
size : | |
depth : |
void flux_comm_set_auto_flush (FluxComm *comm, gboolean auto_flush);
comm : | |
auto_flush : |
<< flux-tree | flux-envoy >> |