|  |  |  | 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 0for end of file,
and-1on 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, orNULL | 
| Returns : | the line read, which the caller must free when done with,
or NULLon eof. If an error occurs,errorwill be set. |