GMimeStream

GMimeStream — Abstract stream class

Types and Values

Object Hierarchy

    GObject
    ╰── GMimeStream
        ├── GMimeStreamBuffer
        ├── GMimeStreamCat
        ├── GMimeStreamFile
        ├── GMimeStreamFilter
        ├── GMimeStreamFs
        ├── GMimeStreamGIO
        ├── GMimeStreamMem
        ├── GMimeStreamMmap
        ├── GMimeStreamNull
        ╰── GMimeStreamPipe

Description

Streams are the fundamental method for reading and writing data used by GMime. You'll probably notice that the basic API is similar to that of the low-level Unix I/O layer (read(), write(), lseek(), etc) with some additional nicities such as a printf-like function.

Functions

g_mime_stream_construct ()

void
g_mime_stream_construct (GMimeStream *stream,
                         gint64 start,
                         gint64 end);

Initializes a new stream with bounds start and end .

Parameters

stream

a GMimeStream

 

start

start boundary

 

end

end boundary

 

g_mime_stream_read ()

ssize_t
g_mime_stream_read (GMimeStream *stream,
                    char *buf,
                    size_t len);

Attempts to read up to len bytes from stream into buf .

Parameters

stream

a GMimeStream

 

buf

buffer.

[array length=len][element-type guint8]

len

buffer length

 

Returns

the number of bytes read or -1 on fail.


g_mime_stream_write ()

ssize_t
g_mime_stream_write (GMimeStream *stream,
                     const char *buf,
                     size_t len);

Attempts to write up to len bytes of buf to stream .

Parameters

stream

a GMimeStream

 

buf

buffer

 

len

buffer length

 

Returns

the number of bytes written or -1 on fail.


g_mime_stream_flush ()

int
g_mime_stream_flush (GMimeStream *stream);

Sync's the stream to disk.

Parameters

stream

a GMimeStream

 

Returns

0 on success or -1 on fail.


g_mime_stream_seek ()

gint64
g_mime_stream_seek (GMimeStream *stream,
                    gint64 offset,
                    GMimeSeekWhence whence);

Repositions the offset of the stream stream to the argument offset according to the directive whence as follows:

GMIME_STREAM_SEEK_SET: Seek offset bytes relative to the beginning (bound_start) of the stream.

GMIME_STREAM_SEEK_CUR: Seek offset bytes relative to the current offset of the stream.

GMIME_STREAM_SEEK_END: Seek offset bytes relative to the end of the stream (bound_end if non-negative).

Parameters

stream

a GMimeStream

 

offset

positional offset

 

whence

seek directive

 

Returns

the resultant position on success or -1 on fail.


g_mime_stream_tell ()

gint64
g_mime_stream_tell (GMimeStream *stream);

Gets the current offset within the stream.

Parameters

stream

a GMimeStream

 

Returns

the current position within the stream or -1 on fail.


g_mime_stream_reset ()

int
g_mime_stream_reset (GMimeStream *stream);

Resets the stream.

Parameters

stream

a GMimeStream

 

Returns

0 on success or -1 on fail.


g_mime_stream_eos ()

gboolean
g_mime_stream_eos (GMimeStream *stream);

Tests the end-of-stream indicator for stream .

Parameters

stream

a GMimeStream

 

Returns

TRUE on EOS or FALSE otherwise.


g_mime_stream_close ()

int
g_mime_stream_close (GMimeStream *stream);

Closes the stream.

Parameters

stream

a GMimeStream

 

Returns

0 on success or -1 on fail.


g_mime_stream_length ()

gint64
g_mime_stream_length (GMimeStream *stream);

Gets the length of the stream.

Parameters

stream

a GMimeStream

 

Returns

the length of the stream or -1 if unknown.


g_mime_stream_substream ()

GMimeStream *
g_mime_stream_substream (GMimeStream *stream,
                         gint64 start,
                         gint64 end);

Creates a new substream of stream with bounds start and end .

Parameters

stream

a GMimeStream

 

start

start boundary

 

end

end boundary

 

Returns

a substream of stream with bounds start and end .

[transfer full]


g_mime_stream_set_bounds ()

void
g_mime_stream_set_bounds (GMimeStream *stream,
                          gint64 start,
                          gint64 end);

Set the bounds on a stream.

Parameters

stream

a GMimeStream

 

start

start boundary

 

end

end boundary

 

g_mime_stream_write_string ()

ssize_t
g_mime_stream_write_string (GMimeStream *stream,
                            const char *str);

Writes string to stream .

Parameters

stream

a GMimeStream

 

str

string to write

 

Returns

the number of bytes written or -1 on fail.


g_mime_stream_printf ()

ssize_t
g_mime_stream_printf (GMimeStream *stream,
                      const char *fmt,
                      ...);

Write formatted output to a stream.

Parameters

stream

a GMimeStream

 

fmt

format

 

...

arguments

 

Returns

the number of bytes written or -1 on fail.


g_mime_stream_write_to_stream ()

gint64
g_mime_stream_write_to_stream (GMimeStream *src,
                               GMimeStream *dest);

Attempts to write the source stream to the destination stream.

Parameters

src

source stream

 

dest

destination stream

 

Returns

the number of bytes written or -1 on fail.


g_mime_stream_writev ()

gint64
g_mime_stream_writev (GMimeStream *stream,
                      GMimeStreamIOVector *vector,
                      size_t count);

Writes at most count blocks described by vector to stream .

Parameters

stream

a GMimeStream

 

vector

a GMimeStreamIOVector

 

count

number of vector elements

 

Returns

the number of bytes written or -1 on fail.

Types and Values

enum GMimeSeekWhence

Relative seek position.

Members

GMIME_STREAM_SEEK_SET

Seek relative to the beginning of the stream.

 

GMIME_STREAM_SEEK_CUR

Seek relative to the current position in the stream.

 

GMIME_STREAM_SEEK_END

Seek relative to the end of the stream.

 

GMimeStreamIOVector

typedef struct {
	void *data;
	size_t len;
} GMimeStreamIOVector;

An I/O vector for use with g_mime_stream_writev().

Members

void *data;

data to pass to the I/O function.

 

size_t len;

length of the data, in bytes.

 

struct GMimeStream

struct GMimeStream;

Abstract I/O stream class.

Members