X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdout.h;h=114c44f492add74d7e42e7bfdd2c0dde02f92698;hp=0d2ab2afb5672dc2969b2b8815cd83e1376bbfec;hb=0c7c4d80673854527ce3c3786dd581169565b5e6;hpb=471684761a2039bbc89aa1e3c33c62de6bef86cf diff --git a/stdout.h b/stdout.h index 0d2ab2af..114c44f4 100644 --- a/stdout.h +++ b/stdout.h @@ -1,29 +1,21 @@ -/* - * Copyright (C) 2006-2007 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2006 Andre Noll , see file COPYING. */ -/** \file stdout.h the stdout task structure and exported symbols from stdout.c */ +/** \file stdout.h Writing to stdout via buffer trees. */ /** - * the task structure used for writing to stdout + * The task structure used for writing to stdout. + * + * This is used by para_recv, para_filter and para_client. */ struct stdout_task { - /** pointer to the data buffer */ - char *buf; - /** number of bytes loaded in \a buf */ - size_t *loaded; - /** pointer to the eof flag of the feeding task */ - int *input_eof; - /** non-zero if a write error occured */ - int eof; - /** the task structure */ - struct task task; - /** whether \p STDOUT_FILENO was included in the write fd set */ - 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);