X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcfdstream.h;h=285c796d07dcd6bfeaf06100e4349a11c0c845a8;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=fc1a4c8f243dd4fd529250d918cc4ee3f18213ef;hpb=cb7c2ffa5dbe4332ca22ddb46b0517aadbf49714;p=silc.git diff --git a/lib/silcutil/silcfdstream.h b/lib/silcutil/silcfdstream.h index fc1a4c8f..285c796d 100644 --- a/lib/silcutil/silcfdstream.h +++ b/lib/silcutil/silcfdstream.h @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2005 Pekka Riikonen + Copyright (C) 2005 - 2007 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,81 +38,113 @@ * * SYNOPSIS * - * SilcStream silc_fd_stream_create(int fd, SilcSchedule schedule); + * SilcStream silc_fd_stream_create(int fd, SilcStack stack); * * DESCRIPTION * * Creates file descriptor stream for the open file descriptor indicated * by `fd'. The stream is closed with the silc_stream_close and destroyed - * with the silc_stream_destroy. + * with the silc_stream_destroy. Returns NULL if system is out of memory. + * + * If the silc_stream_set_notifier is called the stream is set to + * non-blocking mode. + * + * If `stack' is non-NULL all memory is allocated from the `stack' and + * will be released back to `stack' after the stream is destroyed. * ***/ -SilcStream silc_fd_stream_create(int fd, SilcSchedule schedule); +SilcStream silc_fd_stream_create(int fd, SilcStack stack); /****f* silcutil/SilcFDStreamAPI/silc_fd_stream_create2 * * SYNOPSIS * * SilcStream silc_fd_stream_create2(int read_fd, int write_fd, - * SilcSchedule schedule); + * SilcStack stack); * * DESCRIPTION * * Creates file descriptor stream for the open file descriptors indicated * by `read_fd' and `write_fd'. The `read_fd' must be opened for reading * and `write_fd' opened for writing. The stream is closed with the - * silc_stream_close and destroyed with the silc_stream_destroy. + * silc_stream_close and destroyed with the silc_stream_destroy. Returns + * NULL if system is out of memory. + * + * If the silc_stream_set_notifier is called the stream is set to + * non-blocking mode. + * + * If `stack' is non-NULL all memory is allocated from the `stack' and + * will be released back to `stack' after the stream is destroyed. * ***/ -SilcStream silc_fd_stream_create2(int read_fd, int write_fd, - SilcSchedule schedule); +SilcStream silc_fd_stream_create2(int read_fd, int write_fd, SilcStack stack); /****f* silcutil/SilcFDStreamAPI/silc_fd_stream_file * * SYNOPSIS * * SilcStream silc_fd_stream_file(const char *filename, SilcBool reading, - * SilcBool writing, SilcSchedule schedule); + * SilcBool writing, SilcStack stack); * * DESCRIPTION * * Same as silc_fd_stream_create but creates the stream by opening the * file indicated by `filename'. If the `reading' is TRUE the file is * opened for reading. If the `writing' is TRUE the file is opened - * for writing. + * for writing. Returns NULL if system is out of memory. + * + * If the silc_stream_set_notifier is called the stream is set to + * non-blocking mode. + * + * If `stack' is non-NULL all memory is allocated from the `stack' and + * will be released back to `stack' after the stream is destroyed. * ***/ -SilcStream silc_fd_stream_file(const char *filename, SilcBool reading, - SilcBool writing, SilcSchedule schedule); +SilcStream silc_fd_stream_file(const char *filename, SilcBool reading, + SilcBool writing, SilcStack stack); -/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_info +/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_file2 * * SYNOPSIS * - * SilcBool - * silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd); + * SilcStream silc_fd_stream_file2(const char *read_file, + * const char *write_file, + * SilcStack stack); * * DESCRIPTION * - * Returns the file descriptors associated with the stream. The 'write_fd' - * is available only if the stream was created with silc_fd_stream_create2 - * function. + * Same as silc_fd_stream_file but creates the stream by opening `read_file' + * for reading and `write_file' for writing. Returns NULL if system is + * out of memory. + * + * If the silc_stream_set_notifier is called the stream is set to + * non-blocking mode. + * + * If `stack' is non-NULL all memory is allocated from the `stack' and + * will be released back to `stack' after the stream is destroyed. * ***/ -SilcBool silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd); +SilcStream silc_fd_stream_file2(const char *read_file, const char *write_file, + SilcStack stack); -/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_error +/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_info * * SYNOPSIS * - * int silc_fd_stream_get_error(SilcStream stream); + * SilcBool + * silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd); * * DESCRIPTION * - * If error occurred during file descriptor stream operations, this - * function can be used to retrieve the error number that occurred. + * Returns the file descriptors associated with the stream. The 'write_fd' + * is available only if the stream was created with silc_fd_stream_create2 + * function. Returns FALSE if the information is not available. * ***/ -int silc_fd_stream_get_error(SilcStream stream); +SilcBool silc_fd_stream_get_info(SilcStream stream, + int *read_fd, int *write_fd); + +/* Backwards support */ +#define silc_fd_stream_get_error(stream) silc_errno #endif /* SILCFDSTREAM_H */