| Camel Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces | ||||
struct CamelStreamBuffer; enum CamelStreamBufferMode; CamelStream * camel_stream_buffer_new (CamelStream *stream,CamelStreamBufferMode mode); gint camel_stream_buffer_gets (CamelStreamBuffer *sbf,gchar *buf,guint max,GCancellable *cancellable,GError **error); gchar * camel_stream_buffer_read_line (CamelStreamBuffer *sbf,GCancellable *cancellable,GError **error);
typedef enum {
CAMEL_STREAM_BUFFER_BUFFER = 0,
CAMEL_STREAM_BUFFER_NONE,
CAMEL_STREAM_BUFFER_READ = 0x00,
CAMEL_STREAM_BUFFER_WRITE = 0x80,
CAMEL_STREAM_BUFFER_MODE = 0x80
} CamelStreamBufferMode;
CamelStream * camel_stream_buffer_new (CamelStream *stream,CamelStreamBufferMode mode);
Create a new buffered stream of another stream. A default buffer size (1024 bytes), automatically managed will be used for buffering.
The following values are available for mode:
CAMEL_STREAM_BUFFER_BUFFER, Buffer the input/output in blocks. CAMEL_STREAM_BUFFER_NEWLINE, Buffer on newlines (for output). CAMEL_STREAM_BUFFER_NONE, Perform no buffering.
Note that currently this is ignored and CAMEL_STREAM_BUFFER_BUFFER is always used.
In addition, one of the following mode options should be or'd together with the buffering mode:
CAMEL_STREAM_BUFFER_WRITE, Buffer in write mode. CAMEL_STREAM_BUFFER_READ, Buffer in read mode.
Buffering can only be done in one direction for any buffer instance.
|
a CamelStream object to buffer |
|
Operational mode of buffered stream. |
Returns : |
a newly created buffered stream. |
gint camel_stream_buffer_gets (CamelStreamBuffer *sbf,gchar *buf,guint max,GCancellable *cancellable,GError **error);
Read a line of characters up to the next newline character or
max-1 characters.
If the newline character is encountered, then it will be
included in the buffer buf. The buffer will be NULL terminated.
|
a CamelStreamBuffer object |
|
Memory to write the string to. |
|
Maxmimum number of characters to store. |
|
optional GCancellable object, or NULL
|
|
return location for a GError, or NULL
|
Returns : |
the number of characters read, or 0 for end of file,
and -1 on error. |
gchar * camel_stream_buffer_read_line (CamelStreamBuffer *sbf,GCancellable *cancellable,GError **error);
This function reads a complete newline-terminated line from the stream and returns it in allocated memory. The trailing newline (and carriage return if any) are not included in the returned string.
|
a CamelStreamBuffer object |
|
optional GCancellable object, or NULL
|
|
return location for a GError, or NULL
|
Returns : |
the line read, which the caller must free when done with,
or NULL on eof. If an error occurs, error will be set. |