| Top |
A stream is an abstraction for data input. It enables plugins to read data from a file, a memory buffer, a container file or some other medium.
G3DStream * g3d_stream_open_file (const gchar *filename,const gchar *mode);
Opens a file with the C stdio routines.
G3DStream * g3d_stream_open_structured_file (const gchar *filename,const gchar *subfile);
Open a file within a Structured File as G3DStream.
G3DStream * g3d_stream_open_structured_file_from_stream (G3DStream *stream,const gchar *subfile);
Open a file within a Structured File which is opened as a stream. At the
moment this only works for streams opened by g3d_stream_open_file() as
the file is directly opened again.
G3DStream * g3d_stream_open_zip (const gchar *filename,const gchar *subfile);
Open a file within a Zip archive.
G3DStream * g3d_stream_open_zip_from_stream (G3DStream *stream,const gchar *subfile);
Open a file within a Zip archive which is opened as a stream. At the
moment this only works for streams opened by g3d_stream_open_file() as
the file is directly opened again.
G3DStream *
g3d_stream_open_gzip_from_stream (G3DStream *stream);
Reads data from a gzip-compressed stream.
G3DStream * g3d_stream_from_buffer (guint8 *buffer,gsize size,const gchar *title,gboolean free_buffer);
Use a buffer in memory as G3DStream.
buffer |
memory buffer to use |
|
size |
size of buffer |
|
title |
optional title of stream, may be NULL |
|
free_buffer |
whether to free the memory with |
G3DStream * g3d_stream_zlib_inflate_stream (G3DStream *stream,gsize cmp_size);
Opens a new stream to decompress zlib-deflated parts of a stream.
G3DStream * g3d_stream_new_custom (guint32 flags,const gchar *uri,G3DStreamReadFunc readfunc,G3DStreamReadLineFunc readlinefunc,G3DStreamSeekFunc seekfunc,G3DStreamTellFunc tellfunc,G3DStreamSizeFunc sizefunc,G3DStreamEofFunc eoffunc,G3DStreamCloseFunc closefunc,gpointer data);
Creates a new G3DStream with custom callback functions.
flags |
stream capability flags |
|
uri |
URI of new stream, must not be NULL |
|
readfunc |
read callback function |
|
readlinefunc |
read line callback function, may be NULL in which case
line reading is emulated with |
|
seekfunc |
seek callback function |
|
tellfunc |
tell callback function |
|
sizefunc |
size callback function |
|
eoffunc |
end-of-file callback function |
|
closefunc |
close callback function |
|
data |
opaque data for all callback functions |
gint g3d_stream_skip (G3DStream *stream,goffset offset);
Skip a number of bytes (>= 0) in stream even if it does not support seeking.
gint g3d_stream_seek (G3DStream *stream,goffset offset,GSeekType whence);
Moves around the current position in the stream.
goffset
g3d_stream_tell (G3DStream *stream);
Tells the current position in the stream.
gboolean
g3d_stream_eof (G3DStream *stream);
Checks whether the stream has reached its end.
gboolean
g3d_stream_is_seekable (G3DStream *stream);
Get information whether it is possible to seek in a stream.
guint32
g3d_stream_line (G3DStream *stream);
Get the current line number from stream. This only works if line are
consequently read with g3d_stream_read_line(), so it's only applicable
for text streams.
gsize g3d_stream_read (G3DStream *stream,gpointer ptr,gsize size);
Reads a number of bytes from the stream.
gchar * g3d_stream_read_line (G3DStream *stream,gchar *buf,gsize size);
Read a line (terminated by a newline character or end of file) from a stream.
gint32
g3d_stream_read_int8 (G3DStream *stream);
Read a 1 byte signed integer from file.
gint32
g3d_stream_read_int16_be (G3DStream *stream);
Read a 2 byte big-endian signed integer from file.
gint32
g3d_stream_read_int16_le (G3DStream *stream);
Read a 2 byte little-endian signed integer from file.
gint32
g3d_stream_read_int32_be (G3DStream *stream);
Read a 4 byte big-endian signed integer from file.
gint32
g3d_stream_read_int32_le (G3DStream *stream);
Read a 4 byte little-endian signed integer from file.
G3DFloat
g3d_stream_read_float_be (G3DStream *stream);
Read a 4 byte big-endian floating point number from file.
G3DFloat
g3d_stream_read_float_le (G3DStream *stream);
Read a 4 byte little-endian floating point number from file.
G3DDouble
g3d_stream_read_double_be (G3DStream *stream);
Read a 8 byte big-endian double-precision floating point number from file.
G3DDouble
g3d_stream_read_double_le (G3DStream *stream);
Read a 8 byte little-endian double-precision floating point number from file.
gint32 g3d_stream_read_cstr (G3DStream *stream,gchar *buffer,gint32 max_len);
Read a string (terminated by '\0') from stream
gint
(*G3DStreamCloseFunc) (gpointer data);
Callback function for g3d_stream_close().
gboolean
(*G3DStreamEofFunc) (gpointer data);
Callback function for g3d_stream_eof().
gsize (*G3DStreamReadFunc) (gpointer ptr,gsize size,gpointer data);
Callback function for g3d_stream_read().
gchar * (*G3DStreamReadLineFunc) (gchar *buf,gsize size,gpointer data);
Callback function for g3d_stream_read_line().
gint (*G3DStreamSeekFunc) (gpointer data,goffset offset,GSeekType whence);
Callback function for g3d_stream_seek().
goffset
(*G3DStreamSizeFunc) (gpointer data);
Callback function for g3d_stream_size().
goffset
(*G3DStreamTellFunc) (gpointer data);
Callback function for g3d_stream_tell().