galago-value.h
Go to the documentation of this file.00001
00021 #ifndef _GALAGO_VALUE_H_
00022 #define _GALAGO_VALUE_H_
00023
00024 #include <libgalago/galago-types.h>
00025 #include <libgalago/galago-list.h>
00026 #include <libgalago/galago-object.h>
00027
00028 typedef struct _GalagoValue GalagoValue;
00029
00033 typedef enum
00034 {
00035 GALAGO_TYPE_UNKNOWN = 0,
00036 GALAGO_TYPE_CHAR,
00037 GALAGO_TYPE_UCHAR,
00038 GALAGO_TYPE_BOOLEAN,
00039 GALAGO_TYPE_SHORT,
00040 GALAGO_TYPE_USHORT,
00041 GALAGO_TYPE_INT,
00042 GALAGO_TYPE_UINT,
00043 GALAGO_TYPE_LONG,
00044 GALAGO_TYPE_ULONG,
00045 GALAGO_TYPE_STRING,
00046 GALAGO_TYPE_OBJECT,
00047 GALAGO_TYPE_POINTER,
00048 GALAGO_TYPE_LIST,
00049 GALAGO_TYPE_ARRAY
00051 } GalagoType;
00052
00053 #ifdef __cplusplus
00054 extern "C" {
00055 #endif
00056
00067 GalagoValue *galago_value_new(GalagoType type, const void *data, void *detail);
00068
00081 GalagoValue *galago_value_new_list(GalagoType type, const GalagoList *list,
00082 void *detail);
00083
00097 GalagoValue *galago_value_new_array(GalagoType type, const void *array,
00098 size_t size, void *detail);
00099
00105 void galago_value_destroy(GalagoValue *value);
00106
00112 GalagoType galago_value_get_type(const GalagoValue *value);
00113
00121 GalagoType galago_value_get_subtype(const GalagoValue *value);
00122
00130 GalagoObjectClass *galago_value_get_object_class(const GalagoValue *value);
00131
00138 void galago_value_set_char(GalagoValue *value, char data);
00139
00146 void galago_value_set_uchar(GalagoValue *value, unsigned char data);
00147
00154 void galago_value_set_boolean(GalagoValue *value, galago_bool data);
00155
00162 void galago_value_set_short(GalagoValue *value, short data);
00163
00170 void galago_value_set_ushort(GalagoValue *value, unsigned short data);
00171
00178 void galago_value_set_int(GalagoValue *value, int data);
00179
00186 void galago_value_set_uint(GalagoValue *value, unsigned int data);
00187
00194 void galago_value_set_long(GalagoValue *value, long data);
00195
00202 void galago_value_set_ulong(GalagoValue *value, unsigned long data);
00203
00210 void galago_value_set_string(GalagoValue *value, const char *data);
00211
00218 void galago_value_set_object(GalagoValue *value, void *data);
00219
00226 void galago_value_set_pointer(GalagoValue *value, void *data);
00227
00234 void galago_value_set_list(GalagoValue *value, const GalagoList *data);
00235
00243 void galago_value_set_array(GalagoValue *value, const void *data,
00244 size_t size);
00245
00253 char galago_value_get_char(const GalagoValue *value);
00254
00262 unsigned char galago_value_get_uchar(const GalagoValue *value);
00263
00271 galago_bool galago_value_get_boolean(const GalagoValue *value);
00272
00280 short galago_value_get_short(const GalagoValue *value);
00281
00289 unsigned short galago_value_get_ushort(const GalagoValue *value);
00290
00298 int galago_value_get_int(const GalagoValue *value);
00299
00307 unsigned int galago_value_get_uint(const GalagoValue *value);
00308
00316 long galago_value_get_long(const GalagoValue *value);
00317
00325 unsigned long galago_value_get_ulong(const GalagoValue *value);
00326
00334 const char *galago_value_get_string(const GalagoValue *value);
00335
00343 void *galago_value_get_object(const GalagoValue *value);
00344
00352 void *galago_value_get_pointer(const GalagoValue *value);
00353
00361 const GalagoList *galago_value_get_list(const GalagoValue *value);
00362
00370 void galago_value_get_array(const GalagoValue *value,
00371 const void **ret_array,
00372 size_t *ret_size);
00373
00374 #ifdef __cplusplus
00375 }
00376 #endif
00377
00378 #endif