X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdout.h;h=0559fb5c1773c2ea9a55b34b1135725a2415d3d1;hp=4dafafdec596d3ff60fd70dbc2291482165f71d0;hb=5ff39998bf0ce71bd8fc8d0f002ceb81b711992f;hpb=2a8029478dfc65f0c935d864faf4aea9e3deb27d diff --git a/stdout.h b/stdout.h index 4dafafde..0559fb5c 100644 --- a/stdout.h +++ b/stdout.h @@ -1,14 +1,25 @@ -/** \file stdout.h common code for uitlities that write to stdout */ +/* + * Copyright (C) 2006 Andre Noll + * + * Licensed under the GPL v2. For licencing details see COPYING. + */ + +/** \file stdout.h Writing to stdout via buffer trees. */ + +/** + * The task structure used for writing to stdout. + * + * This is used by para_recv, para_filter and para_client. + */ struct stdout_task { - char *buf; - size_t *bufsize; - size_t *loaded; - int *input_eof; - int eof; - struct task task; - int check_fd; + /** The task structure used by the scheduler. */ + struct task *task; + /** Stdout is always a leaf node in the buffer tree. */ + struct btr_node *btrn; + /** The descriptor flags of STDOUT at startup. */ + int fd_flags; + /** Whether we have to set STDOUT to nonblocking mode. */ + bool must_set_nonblock_flag; }; -void stdout_pre_select(struct sched *s, struct task *t); -void stdout_post_select(struct sched *s, struct task *t); -void stdout_set_defaults(struct stdout_task *sot); +void stdout_task_register(struct stdout_task *sot, struct sched *s);