Author: Pekka Riikonen <priikone@silcnet.org>
- 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
* interface should be used only with real file descriptors, not with
* sockets. Use the SILC Socket Stream for sockets.
*
+ * SILC File Descriptor Stream is not thread-safe. If same stream must be
+ * used in multithreaded environment concurrency control must be employed.
+ *
***/
#ifndef SILCFDSTREAM_H
*
* SYNOPSIS
*
- * SilcStream silc_fd_stream_create(int fd, SilcSchedule schedule);
+ * SilcStream silc_fd_stream_create(int fd);
*
* DESCRIPTION
*
* by `fd'. The stream is closed with the silc_stream_close and destroyed
* with the silc_stream_destroy.
*
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode.
+ *
***/
-SilcStream silc_fd_stream_create(int fd, SilcSchedule schedule);
+SilcStream silc_fd_stream_create(int fd);
/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_create2
*
* SYNOPSIS
*
- * SilcStream silc_fd_stream_create2(int read_fd, int write_fd,
- * SilcSchedule schedule);
+ * SilcStream silc_fd_stream_create2(int read_fd, int write_fd);
*
* DESCRIPTION
*
* and `write_fd' opened for writing. The stream is closed with the
* silc_stream_close and destroyed with the silc_stream_destroy.
*
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode.
+ *
+ ***/
+SilcStream silc_fd_stream_create2(int read_fd, int write_fd);
+
+/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_file
+ *
+ * SYNOPSIS
+ *
+ * SilcStream silc_fd_stream_file(const char *filename, SilcBool reading,
+ * SilcBool writing);
+ *
+ * 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.
+ *
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode.
+ *
+ ***/
+SilcStream silc_fd_stream_file(const char *filename, SilcBool reading,
+ SilcBool writing);
+
+/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_file2
+ *
+ * SYNOPSIS
+ *
+ * SilcStream silc_fd_stream_file2(const char *read_file,
+ * const char *write_file);
+ *
+ * DESCRIPTION
+ *
+ * Same as silc_fd_stream_file but creates the stream by opening `read_file'
+ * for reading and `write_file' for writing.
+ *
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode.
+ *
***/
-SilcStream silc_fd_stream_create2(int read_fd, int write_fd,
- SilcSchedule schedule);
+SilcStream silc_fd_stream_file2(const char *read_file, const char *write_file);
/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_info
*
* SYNOPSIS
*
- * bool
+ * SilcBool
* silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd);
*
* DESCRIPTION
* function.
*
***/
-bool silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd);
+SilcBool silc_fd_stream_get_info(SilcStream stream,
+ int *read_fd, int *write_fd);
/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_error
*