v0.1.0
Fast, portable C library for geometry input/output
|
All other gmio modules rely on this module. More...
Data Structures | |
struct | gmio_memblock |
Basic memory block. More... | |
struct | gmio_stream |
Stream that can get input from an arbitrary data source or can write output to an arbitrary data sink. More... | |
struct | gmio_streampos |
Specifies a position within a stream. More... | |
struct | gmio_task_iface |
Defines an interface through which a task can be controlled. More... | |
struct | gmio_vec3f |
Vector of three float coords. More... | |
struct | gmio_vec3d |
Vector of three double coords. More... | |
Macros | |
#define | GMIO_DECL_EXPORT |
Expands to the C compiler extension to export functions to a DLL. More... | |
#define | GMIO_DECL_IMPORT |
Expands to the C compiler extension to import functions from a DLL. More... | |
#define | GMIO_API |
Expands either to GMIO_DECL_EXPORT or GMIO_DECL_IMPORT when respectively compiling/using the DLL. More... | |
#define | GMIO_UNUSED(x) (void)x; |
Tells the compiler that a parameter is not used in the body of a function. More... | |
#define | GMIO_INLINE |
Expands to the C compiler specific inline keyword (if any) More... | |
#define | GMIO_RESTRICT |
Expands to the C compiler specific restrict keyword (if any) More... | |
#define | GMIO_C_LINKAGE_BEGIN |
Expands to extern "C" { when building with a C++ compiler. More... | |
#define | GMIO_C_LINKAGE_END |
Expands to } when building with a C++ compiler. More... | |
#define | GMIO_PRAGMA_MSVC_WARNING_PUSH_AND_DISABLE(__code__) |
MSVC specific macro that disable the compiler warning of code code More... | |
#define | GMIO_PRAGMA_MSVC_WARNING_POP() |
MSVC specific macro that pop the changes made after last warning(pop) More... | |
#define | GMIO_ARRAY_SIZE(array) sizeof(array) / sizeof(*array) |
Expands to the size(item count) of an array. More... | |
Typedefs | |
typedef struct gmio_memblock(* | gmio_memblock_constructor_func_t )() |
Typedef for a pointer to a function that creates an allocated mblock. More... | |
typedef int64_or_long | gmio_streamsize_t |
Type able to represent the size(in bytes) of a stream. More... | |
typedef int64_or_long | gmio_streamoffset_t |
Type able to represent the offset position within a stream. More... | |
Enumerations | |
enum | gmio_endianness |
This enum identifies common endianness (byte order) of computer memory. More... | |
enum | gmio_error |
This enum defines common errors. More... | |
enum | |
GMIO_STREAMPOS_COOKIE_SIZE Size of the byte array gmio_streampos::cookie More... | |
enum | gmio_float_text_format |
This enum defines the various formats to textually represent a float. More... | |
Functions | |
enum gmio_endianness | gmio_host_endianness () |
Returns endianness (byte order) of the host's CPU architecture. More... | |
bool | gmio_no_error (int code) |
Returns true if code == GMIO_NO_ERROR More... | |
bool | gmio_error (int code) |
Returns true if code != GMIO_NO_ERROR More... | |
bool | gmio_memblock_isnull (const struct gmio_memblock *mblock) |
Returns true if mblock is NULL or points to null/void memory. More... | |
struct gmio_memblock | gmio_memblock (void *ptr, size_t size, void(*func_deallocate)(void *)) |
Returns an initialized gmio_memblock object. More... | |
struct gmio_memblock | gmio_memblock_malloc (size_t size) |
Returns a gmio_memblock object allocated with standard malloc() More... | |
struct gmio_memblock | gmio_memblock_calloc (size_t num, size_t size) |
Returns a gmio_memblock object allocated with standard calloc() More... | |
struct gmio_memblock | gmio_memblock_realloc (void *ptr, size_t size) |
Returns a gmio_memblock object allocated with standard realloc() More... | |
void | gmio_memblock_deallocate (struct gmio_memblock *mblock) |
Safe and convenient call to gmio_memblock::func_deallocate() More... | |
void | gmio_memblock_set_default_constructor (gmio_memblock_constructor_func_t ctor) |
Installs a global function to construct gmio_memblock objects. More... | |
gmio_memblock_constructor_func_t | gmio_memblock_default_constructor () |
Returns the currently installed function to construct gmio_memblock objects. More... | |
struct gmio_memblock | gmio_memblock_default () |
Returns a gmio_memblock object created using the function gmio_memblock_default_constructor() More... | |
struct gmio_stream | gmio_stream_null () |
Returns a null stream. More... | |
struct gmio_stream | gmio_stream_stdio (FILE *file) |
Returns a stream for standard FILE* (cookie will hold file ) More... | |
All other gmio modules rely on this module.
struct gmio_streampos |
Specifies a position within a stream.
The information in gmio_streampos objects is usually filled by a call to gmio_stream::func_get_pos(), which takes a pointer to an object of this type as argument.
The content of a gmio_streampos object is not meant to be read directly, but only to be used as an argument in a call to gmio_stream::func_set_pos()
Data Fields | ||
---|---|---|
uint8_t | cookie[GMIO_STREAMPOS_COOKIE_SIZE] | Stores the actual(concrete) stream position object. |
struct gmio_vec3f |
Vector of three float coords.
Data Fields | ||
---|---|---|
float | x | |
float | y | |
float | z |
#define GMIO_API |
Expands either to GMIO_DECL_EXPORT or GMIO_DECL_IMPORT when respectively compiling/using the DLL.
#define GMIO_ARRAY_SIZE | ( | array | ) | sizeof(array) / sizeof(*array) |
Expands to the size(item count) of an array.
#define GMIO_C_LINKAGE_BEGIN |
Expands to extern "C" {
when building with a C++ compiler.
#define GMIO_C_LINKAGE_END |
Expands to }
when building with a C++ compiler.
#define GMIO_DECL_EXPORT |
Expands to the C compiler extension to export functions to a DLL.
#define GMIO_DECL_IMPORT |
Expands to the C compiler extension to import functions from a DLL.
#define GMIO_INLINE |
Expands to the C compiler specific inline keyword (if any)
#define GMIO_PRAGMA_MSVC_WARNING_POP | ( | ) |
MSVC specific macro that pop the changes made after last warning(pop)
With Visual C++, expands to :
#define GMIO_PRAGMA_MSVC_WARNING_PUSH_AND_DISABLE | ( | __code__ | ) |
MSVC specific macro that disable the compiler warning of code code
With Visual C++, expands to :
#define GMIO_RESTRICT |
Expands to the C compiler specific restrict keyword (if any)
#define GMIO_UNUSED | ( | x | ) | (void)x; |
Tells the compiler that a parameter is not used in the body of a function.
typedef struct gmio_memblock(* gmio_memblock_constructor_func_t)() |
Typedef for a pointer to a function that creates an allocated mblock.
Signature:
typedef int64_or_long gmio_streamoffset_t |
Type able to represent the offset position within a stream.
It can be int64_t or long depending on the compiler support
typedef int64_or_long gmio_streamsize_t |
Type able to represent the size(in bytes) of a stream.
It can be int64_t or long depending on the compiler support
anonymous enum |
GMIO_STREAMPOS_COOKIE_SIZE
Size of the byte array gmio_streampos::cookie
Enumerator | |
---|---|
GMIO_STREAMPOS_COOKIE_SIZE |
enum gmio_endianness |
This enum identifies common endianness (byte order) of computer memory.
enum gmio_error |
This enum defines common errors.
Enumerator | |
---|---|
GMIO_ERROR_OK |
No error occurred, success. |
GMIO_ERROR_NULL_MEMBLOCK |
Pointer on argument memory block is NULL. |
GMIO_ERROR_INVALID_MEMBLOCK_SIZE |
Argument size for the memory block is too small. |
GMIO_ERROR_STREAM |
An error occurred with gmio_stream. |
GMIO_ERROR_TRANSFER_STOPPED |
Transfer was stopped by user, that is to say gmio_transfer::func_is_stop_requested() returned true. |
GMIO_ERROR_STDIO |
An error occured after a call to a <stdio.h> function. The caller can check errno to get the real error number |
GMIO_ERROR_UNKNOWN |
Unknown error. |
This enum defines the various formats to textually represent a float.
bool gmio_error | ( | int | code | ) |
Returns true if code != GMIO_NO_ERROR
enum gmio_endianness gmio_host_endianness | ( | ) |
Returns endianness (byte order) of the host's CPU architecture.
struct gmio_memblock gmio_memblock | ( | void * | ptr, |
size_t | size, | ||
void(*)(void *) | func_deallocate | ||
) |
Returns an initialized gmio_memblock object.
If ptr
is NULL then gmio_memblock::size is forced to 0
struct gmio_memblock gmio_memblock_calloc | ( | size_t | num, |
size_t | size | ||
) |
Returns a gmio_memblock object allocated with standard calloc()
gmio_memblock::func_deallocate is set to standard free()
void gmio_memblock_deallocate | ( | struct gmio_memblock * | mblock | ) |
Safe and convenient call to gmio_memblock::func_deallocate()
struct gmio_memblock gmio_memblock_default | ( | ) |
Returns a gmio_memblock object created using the function gmio_memblock_default_constructor()
gmio_memblock_constructor_func_t gmio_memblock_default_constructor | ( | ) |
Returns the currently installed function to construct gmio_memblock objects.
It is initialized to gmio_memblock_malloc(128KB)
bool gmio_memblock_isnull | ( | const struct gmio_memblock * | mblock | ) |
Returns true if mblock
is NULL or points to null/void memory.
struct gmio_memblock gmio_memblock_malloc | ( | size_t | size | ) |
Returns a gmio_memblock object allocated with standard malloc()
gmio_memblock::func_deallocate is set to standard free()
struct gmio_memblock gmio_memblock_realloc | ( | void * | ptr, |
size_t | size | ||
) |
Returns a gmio_memblock object allocated with standard realloc()
gmio_memblock::func_deallocate is set to standard free()
void gmio_memblock_set_default_constructor | ( | gmio_memblock_constructor_func_t | ctor | ) |
Installs a global function to construct gmio_memblock objects.
The constructor function allocates a gmio_memblock object on demand, to be used when a temporary memblock is needed.
This function is not thread-safe.
bool gmio_no_error | ( | int | code | ) |
Returns true if code == GMIO_NO_ERROR
struct gmio_stream gmio_stream_null | ( | ) |
Returns a null stream.
struct gmio_stream gmio_stream_stdio | ( | FILE * | file | ) |
Returns a stream for standard FILE* (cookie will hold file
)
Fougue © 2016 | Last Update: Fri Jun 24 2016 |