#ifndef GLIB_H | |
#define GLIB_H | |
#include <stdlib.h> | |
#if defined(_WIN32) | |
#include <winsock2.h> | |
#endif | |
typedef char gchar; | |
typedef unsigned int guint; | |
typedef unsigned short gushort; | |
typedef void* gpointer; | |
typedef unsigned long gsize; | |
typedef const void *gconstpointer; | |
typedef int gint; | |
typedef gint gboolean; | |
typedef struct _GSource {int dummy;} GSource; | |
typedef struct GPollFD { | |
#if defined(_WIN32) | |
SOCKET fd; | |
#else | |
gint fd; | |
#endif | |
gushort events; | |
gushort revents; | |
} GPollFD; | |
typedef struct _GArray { | |
gchar *data; | |
guint len; | |
} GArray; | |
gpointer g_malloc (gsize n_bytes); | |
gpointer g_malloc0 (gsize n_bytes); | |
gpointer g_realloc (gpointer mem, gsize n_bytes); | |
void g_free (gpointer mem); | |
gchar *g_strdup (const gchar *str); | |
typedef enum { | |
/* Flags */ | |
G_LOG_FLAG_RECURSION = 1 << 0, | |
G_LOG_FLAG_FATAL = 1 << 1, | |
/* Levels */ | |
G_LOG_LEVEL_ERROR = 1 << 2, | |
G_LOG_LEVEL_CRITICAL = 1 << 3, | |
G_LOG_LEVEL_WARNING = 1 << 4, | |
G_LOG_LEVEL_MESSAGE = 1 << 5, | |
G_LOG_LEVEL_INFO = 1 << 6, | |
G_LOG_LEVEL_DEBUG = 1 << 7, | |
G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL) | |
} GLogLevelFlags; | |
#define GLIB_SYSDEF_POLLIN =1 | |
#define GLIB_SYSDEF_POLLOUT =4 | |
#define GLIB_SYSDEF_POLLPRI =2 | |
#define GLIB_SYSDEF_POLLHUP =16 | |
#define GLIB_SYSDEF_POLLERR =8 | |
#define GLIB_SYSDEF_POLLNVAL =32 | |
typedef enum { | |
G_IO_IN GLIB_SYSDEF_POLLIN, /* There is data to read. */ | |
G_IO_OUT GLIB_SYSDEF_POLLOUT, /* Data can be written (without blocking). */ | |
G_IO_PRI GLIB_SYSDEF_POLLPRI, /* There is urgent data to read. */ | |
G_IO_ERR GLIB_SYSDEF_POLLERR, /* Error condition. */ | |
G_IO_HUP GLIB_SYSDEF_POLLHUP, /* Hung up (the connection has been broken, usually for pipes and sockets). */ | |
G_IO_NVAL GLIB_SYSDEF_POLLNVAL /* Invalid request. The file descriptor is not open. */ | |
} GIOCondition; | |
void g_log (const gchar *log_domain, GLogLevelFlags log_level, const gchar *format, ...); | |
#if !defined(G_LOG_DOMAIN) | |
#define G_LOG_DOMAIN ((gchar *)NULL) | |
#endif | |
#define g_warning(...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, __VA_ARGS__) | |
#define g_new(struct_type, n_structs) g_malloc (sizeof(struct_type) * n_structs) | |
#define g_array_append_val(array, data) g_array_append_vals (array, &data, 1) | |
#define g_array_new(zero_terminated, clear, element_size) g_array_sized_new(zero_terminated, clear, element_size, 0) | |
GArray * | |
g_array_sized_new (gboolean zero_terminated, | |
gboolean clear, | |
guint element_size, | |
guint reserved_size); | |
gchar * | |
g_array_free (GArray *array, | |
gboolean free_segment); | |
#define g_array_index(array, type, index) (((type *)(void *)((array)->data)))[index] | |
GArray * | |
g_array_set_size (GArray *array, | |
guint length); | |
GArray * | |
g_array_append_vals (GArray *array, | |
gconstpointer data, | |
guint len); | |
guint | |
g_array_get_element_size (GArray *array); | |
#endif |