Galago - desktop presence framework

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 /* _GALAGO_VALUE_H_ */