X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdout.h;h=57cf969d6c9af27a0d2ab400d2486b89209886a1;hp=fee9800cbbe28a2a195ab62ec4f1bfa244dddac3;hb=3a6b996d8b39fdc067df352d1eee757ef2a8f49b;hpb=0b101563e67c91bc660f6a16b5889901d9e8eeff diff --git a/stdout.h b/stdout.h index fee9800c..57cf969d 100644 --- a/stdout.h +++ b/stdout.h @@ -1,27 +1,25 @@ /* - * Copyright (C) 2006-2009 Andre Noll + * Copyright (C) 2006-2014 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ -/** \file stdout.h The standard out task structure. */ +/** \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 { - /** Pointer to the data buffer pointer. */ - char **bufp; - /** Number of bytes loaded in \a buf. */ - size_t *loaded; - /** Pointer to the error variable of the feeding task. */ - int *input_error; - /** The task structure. */ - struct task task; - /** Whether \p STDOUT_FILENO was included in the write fd set. */ - int check_fd; - /** Non-null if buffer tree API should be used. */ + /** 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_set_defaults(struct stdout_task *sot); +void stdout_task_register(struct stdout_task *sot, struct sched *s);