v0.4.1
Fast, portable C library for geometry input/output
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Modules
Data Fields
gmio_stream Struct Reference

Stream that can get input from an arbitrary data source or can write output to an arbitrary data sink. More...

Data Fields

void * cookie
 Opaque pointer on the user stream, passed as first argument to hook functions. More...
 
bool(* func_at_end )(void *cookie)
 Function that checks end-of-stream indicator. More...
 
int(* func_error )(void *cookie)
 Function that checks error indicator. More...
 
size_t(* func_read )(void *cookie, void *ptr, size_t size, size_t count)
 Function that reads block of data from stream. More...
 
size_t(* func_write )(void *cookie, const void *ptr, size_t size, size_t count)
 Function that writes block of data to stream. More...
 
gmio_streamsize_t(* func_size )(void *cookie)
 Function that returns the size(in bytes) of the stream. More...
 
int(* func_get_pos )(void *cookie, struct gmio_streampos *pos)
 Function that retrieves the current position in the stream. More...
 
int(* func_set_pos )(void *cookie, const struct gmio_streampos *pos)
 Function that restores the current position in the stream to pos. More...
 

Detailed Description

Stream that can get input from an arbitrary data source or can write output to an arbitrary data sink.

It can be seen as generalization of the standard FILE*, and is pretty much the same as custom streams in the GNU C Library

It uses a cookie being basically an opaque pointer on a hidden data type.

The custom stream is implemented by defining hook functions that know how to read/write the data.

Field Documentation

void* gmio_stream::cookie

Opaque pointer on the user stream, passed as first argument to hook functions.

bool(* gmio_stream::func_at_end)(void *cookie)

Function that checks end-of-stream indicator.

Checks whether the end-of-stream indicator associated with stream pointed by cookie is set, returning true if it is.

The function should behaves like C standard feof()

int(* gmio_stream::func_error)(void *cookie)

Function that checks error indicator.

Checks if the error indicator associated with stream pointed by cookie is set, returning a value different from zero if it is.

The function should behaves like C standard ferror()

size_t(* gmio_stream::func_read)(void *cookie, void *ptr, size_t size, size_t count)

Function that reads block of data from stream.

Reads an array of count elements, each one with a size of size bytes, from the stream pointed by cookie and stores them in the block of memory specified by ptr

The function should behaves like C standard fread()

Returns
The total number of elements successfully read
size_t(* gmio_stream::func_write)(void *cookie, const void *ptr, size_t size, size_t count)

Function that writes block of data to stream.

Writes an array of count elements, each one with a size of size bytes, from the block of memory pointed by ptr to the current position in the stream pointed by cookie

The function should behaves like C standard fwrite()

Returns
The total number of elements successfully written
gmio_streamsize_t(* gmio_stream::func_size)(void *cookie)

Function that returns the size(in bytes) of the stream.

int(* gmio_stream::func_get_pos)(void *cookie, struct gmio_streampos *pos)

Function that retrieves the current position in the stream.

Return values
0on success
!=0on error
int(* gmio_stream::func_set_pos)(void *cookie, const struct gmio_streampos *pos)

Function that restores the current position in the stream to pos.

Return values
0on success
!=0on error

The documentation for this struct was generated from the following file:
Fougue © 2017