void *private_data;
/** send that many bytes in one go */
int chunk_bytes;
+ struct task task;
+ struct writer_node_group *wng;
};
/** describes one supported writer */
*
*/
int (*write)(char *data, size_t nbytes, struct writer_node *);
+void (*pre_select)(struct sched *s, struct task *t);
+void (*post_select)(struct sched *s, struct task *t);
/**
* close one instance of the writer
*
* describes a set of writer nodes that all write the same stream.
*/
struct writer_node_group {
-/** number of nodes belonging to this group */
-unsigned num_writers;
-/** array of pointers to the corresponding writer nodes */
-struct writer_node *writer_nodes;
-/** keeps track of how many bytes have been written by each node */
-int *written;
-/** the maximum of the chunk_bytes values of the writer nodes in this group */
-size_t max_chunk_bytes;
-/** non-zero if end of file was encountered */
-int eof;
+ /** number of nodes belonging to this group */
+ unsigned num_writers;
+ /** array of pointers to the corresponding writer nodes */
+ struct writer_node *writer_nodes;
+ /** keeps track of how many bytes have been written by each node */
+ int *written;
+ /** the maximum of the chunk_bytes values of the writer nodes in this group */
+ size_t max_chunk_bytes;
+ /** non-zero if end of file was encountered */
+ int *input_eof;
+ int eof;
+ char *buf;
+ size_t *loaded;
+ struct task task;
};
/** loop over each writer node in a writer group */