14192
+ 鐃緒申 1 /**
+ 鐃緒申 2 * @file value.h Value wrapper API
+ 鐃緒申 3 * @ingroup core
+ 鐃緒申 4 *
+ 鐃緒申 5 * gaim
+ 鐃緒申 6 *
+ 鐃緒申 7 * Gaim is the legal property of its developers, whose names are too numerous
+ 鐃緒申 8 * to list here. Please refer to the COPYRIGHT file distributed with this
+ 鐃緒申 9 * source distribution.
+ 鐃緒申 10 *
+ 鐃緒申 11 * This program is free software; you can redistribute it and/or modify
+ 鐃緒申 12 * it under the terms of the GNU General Public License as published by
+ 鐃緒申 13 * the Free Software Foundation; either version 2 of the License, or
+ 鐃緒申 14 * (at your option) any later version.
+ 鐃緒申 15 *
+ 鐃緒申 16 * This program is distributed in the hope that it will be useful,
+ 鐃緒申 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ 鐃緒申 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ 鐃緒申 19 * GNU General Public License for more details.
+ 鐃緒申 20 *
+ 鐃緒申 21 * You should have received a copy of the GNU General Public License
+ 鐃緒申 22 * along with this program; if not, write to the Free Software
+ 鐃緒申 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 鐃緒申 24 */
+ 鐃緒申 25 #ifndef _GAIM_VALUE_H_
+ 鐃緒申 26 #define _GAIM_VALUE_H_
+ 鐃緒申 27
+ 鐃緒申 28 #include <glib.h>
+ 鐃緒申 29
+ 鐃緒申 30 /**
+ 鐃緒申 31 * Specific value types.
+ 鐃緒申 32 */
+ 鐃緒申 33 typedef enum
+ 鐃緒申 34 {
+ 鐃緒申 35 GAIM_TYPE_UNKNOWN = 0, /**< Unknown type. */
+ 鐃緒申 36 GAIM_TYPE_SUBTYPE, /**< Subtype. */
+ 鐃緒申 37 GAIM_TYPE_CHAR, /**< Character. */
+ 鐃緒申 38 GAIM_TYPE_UCHAR, /**< Unsigned character. */
+ 鐃緒申 39 GAIM_TYPE_BOOLEAN, /**< Boolean. */
+ 鐃緒申 40 GAIM_TYPE_SHORT, /**< Short integer. */
+ 鐃緒申 41 GAIM_TYPE_USHORT, /**< Unsigned short integer. */
+ 鐃緒申 42 GAIM_TYPE_INT, /**< Integer. */
+ 鐃緒申 43 GAIM_TYPE_UINT, /**< Unsigned integer. */
+ 鐃緒申 44 GAIM_TYPE_LONG, /**< Long integer. */
+ 鐃緒申 45 GAIM_TYPE_ULONG, /**< Unsigned long integer. */
+ 鐃緒申 46 GAIM_TYPE_INT64, /**< 64-bit integer. */
+ 鐃緒申 47 GAIM_TYPE_UINT64, /**< 64-bit unsigned integer. */
+ 鐃緒申 48 GAIM_TYPE_STRING, /**< String. */
+ 鐃緒申 49 GAIM_TYPE_OBJECT, /**< Object pointer. */
+ 鐃緒申 50 GAIM_TYPE_POINTER, /**< Generic pointer. */
+ 鐃緒申 51 GAIM_TYPE_ENUM, /**< Enum. */
+ 鐃緒申 52 GAIM_TYPE_BOXED /**< Boxed pointer with specific type. */
+ 鐃緒申 53
+ 鐃緒申 54 } GaimType;
+ 鐃緒申 55
+ 鐃緒申 56
+ 鐃緒申 57 /**
+ 鐃緒申 58 * Gaim-specific subtype values.
+ 鐃緒申 59 */
+ 鐃緒申 60 typedef enum
+ 鐃緒申 61 {
+ 鐃緒申 62 GAIM_SUBTYPE_UNKNOWN = 0,
+ 鐃緒申 63 GAIM_SUBTYPE_ACCOUNT,
+ 鐃緒申 64 GAIM_SUBTYPE_BLIST,
+ 鐃緒申 65 GAIM_SUBTYPE_BLIST_BUDDY,
+ 鐃緒申 66 GAIM_SUBTYPE_BLIST_GROUP,
+ 鐃緒申 67 GAIM_SUBTYPE_BLIST_CHAT,
+ 鐃緒申 68 GAIM_SUBTYPE_BUDDY_ICON,
+ 鐃緒申 69 GAIM_SUBTYPE_CONNECTION,
+ 鐃緒申 70 GAIM_SUBTYPE_CONVERSATION,
+ 鐃緒申 71 GAIM_SUBTYPE_PLUGIN,
+ 鐃緒申 72 GAIM_SUBTYPE_BLIST_NODE,
+ 鐃緒申 73 GAIM_SUBTYPE_CIPHER,
+ 鐃緒申 74 GAIM_SUBTYPE_STATUS,
+ 鐃緒申 75 GAIM_SUBTYPE_LOG,
+ 鐃緒申 76 GAIM_SUBTYPE_XFER,
14296
+ 鐃緒申 77 GAIM_SUBTYPE_SAVEDSTATUS,
+ 鐃緒申 78 GAIM_SUBTYPE_XMLNODE
14192
+ 鐃緒申 79 } GaimSubType;
+ 鐃緒申 80
+ 鐃緒申 81 /**
+ 鐃緒申 82 * A wrapper for a type, subtype, and specific type of value.
+ 鐃緒申 83 */
+ 鐃緒申 84 typedef struct
+ 鐃緒申 85 {
+ 鐃緒申 86 GaimType type;
+ 鐃緒申 87 unsigned short flags;
+ 鐃緒申 88
+ 鐃緒申 89 union
+ 鐃緒申 90 {
+ 鐃緒申 91 char char_data;
+ 鐃緒申 92 unsigned char uchar_data;
+ 鐃緒申 93 gboolean boolean_data;
+ 鐃緒申 94 short short_data;
+ 鐃緒申 95 unsigned short ushort_data;
+ 鐃緒申 96 int int_data;
+ 鐃緒申 97 unsigned int uint_data;
+ 鐃緒申 98 long long_data;
+ 鐃緒申 99 unsigned long ulong_data;
+ 鐃緒申 100 gint64 int64_data;
+ 鐃緒申 101 guint64 uint64_data;
+ 鐃緒申 102 char *string_data;
+ 鐃緒申 103 void *object_data;
+ 鐃緒申 104 void *pointer_data;
+ 鐃緒申 105 int enum_data;
+ 鐃緒申 106 void *boxed_data;
+ 鐃緒申 107
+ 鐃緒申 108 } data;
+ 鐃緒申 109
+ 鐃緒申 110 union
+ 鐃緒申 111 {
+ 鐃緒申 112 unsigned int subtype;
+ 鐃緒申 113 char *specific_type;
+ 鐃緒申 114
+ 鐃緒申 115 } u;
+ 鐃緒申 116
+ 鐃緒申 117 } GaimValue;
+ 鐃緒申 118
+ 鐃緒申 119 #ifdef __cplusplus
+ 鐃緒申 120 extern "C" {
+ 鐃緒申 121 #endif
+ 鐃緒申 122
+ 鐃緒申 123 /**
+ 鐃緒申 124 * Creates a new GaimValue.
+ 鐃緒申 125 *
+ 鐃緒申 126 * This function takes a type and, depending on that type, a sub-type
+ 鐃緒申 127 * or specific type.
+ 鐃緒申 128 *
+ 鐃緒申 129 * If @a type is GAIM_TYPE_BOXED, the next parameter must be a
+ 鐃緒申 130 * string representing the specific type.
+ 鐃緒申 131 *
+ 鐃緒申 132 * If @a type is GAIM_TYPE_SUBTYPE, the next parameter must be a
+ 鐃緒申 133 * integer or enum representing the sub-type.
+ 鐃緒申 134 *
+ 鐃緒申 135 * If the subtype or specific type is not set when required, random
+ 鐃緒申 136 * errors may occur. You have been warned.
+ 鐃緒申 137 *
+ 鐃緒申 138 * @param type The type.
+ 鐃緒申 139 *
+ 鐃緒申 140 * @return The new value.
+ 鐃緒申 141 */
+ 鐃緒申 142 GaimValue *gaim_value_new(GaimType type, ...);
+ 鐃緒申 143
+ 鐃緒申 144 /**
+ 鐃緒申 145 * Creates a new outgoing GaimValue. If a value is an "outgoing" value
+ 鐃緒申 146 * it means the value can be modified by plugins and scripts.
+ 鐃緒申 147 *
+ 鐃緒申 148 * This function takes a type and, depending on that type, a sub-type
+ 鐃緒申 149 * or specific type.
+ 鐃緒申 150 *
+ 鐃緒申 151 * If @a type is GAIM_TYPE_BOXED, the next parameter must be a
+ 鐃緒申 152 * string representing the specific type.
+ 鐃緒申 153 *
+ 鐃緒申 154 * If @a type is GAIM_TYPE_SUBTYPE, the next parameter must be a
+ 鐃緒申 155 * integer or enum representing the sub-type.
+ 鐃緒申 156 *
+ 鐃緒申 157 * If the sub-type or specific type is not set when required, random
+ 鐃緒申 158 * errors may occur. You have been warned.
+ 鐃緒申 159 *
+ 鐃緒申 160 * @param type The type.
+ 鐃緒申 161 *
+ 鐃緒申 162 * @return The new value.
+ 鐃緒申 163 */
+ 鐃緒申 164 GaimValue *gaim_value_new_outgoing(GaimType type, ...);
+ 鐃緒申 165
+ 鐃緒申 166 /**
+ 鐃緒申 167 * Destroys a GaimValue.
+ 鐃緒申 168 *
+ 鐃緒申 169 * @param value The value to destroy.
+ 鐃緒申 170 */
+ 鐃緒申 171 void gaim_value_destroy(GaimValue *value);
+ 鐃緒申 172
+ 鐃緒申 173 /**
+ 鐃緒申 174 * Duplicated a GaimValue.
+ 鐃緒申 175 *
+ 鐃緒申 176 * @param value The value to duplicate.
+ 鐃緒申 177 *
+ 鐃緒申 178 * @return The duplicate value.
+ 鐃緒申 179 */
+ 鐃緒申 180 GaimValue *gaim_value_dup(const GaimValue *value);
+ 鐃緒申 181
+ 鐃緒申 182 /**
+ 鐃緒申 183 * Returns a value's type.
+ 鐃緒申 184 *
+ 鐃緒申 185 * @param value The value whose type you want.
+ 鐃緒申 186 *
+ 鐃緒申 187 * @return The value's type.
+ 鐃緒申 188 */
+ 鐃緒申 189 GaimType gaim_value_get_type(const GaimValue *value);
+ 鐃緒申 190
+ 鐃緒申 191 /**
+ 鐃緒申 192 * Returns a value's subtype.
+ 鐃緒申 193 *
+ 鐃緒申 194 * If the value's type is not GAIM_TYPE_SUBTYPE, this will return 0.
+ 鐃緒申 195 * Subtypes should never have a subtype of 0.
+ 鐃緒申 196 *
+ 鐃緒申 197 * @param value The value whose subtype you want.
+ 鐃緒申 198 *
+ 鐃緒申 199 * @return The value's subtype, or 0 if @a type is not GAIM_TYPE_SUBTYPE.
+ 鐃緒申 200 */
+ 鐃緒申 201 unsigned int gaim_value_get_subtype(const GaimValue *value);
+ 鐃緒申 202
+ 鐃緒申 203 /**
+ 鐃緒申 204 * Returns a value's specific type.
+ 鐃緒申 205 *
+ 鐃緒申 206 * If the value's type is not GAIM_TYPE_BOXED, this will return @c NULL.
+ 鐃緒申 207 *
+ 鐃緒申 208 * @param value The value whose specific type you want.
+ 鐃緒申 209 *
+ 鐃緒申 210 * @return The value's specific type, or @a NULL if not GAIM_TYPE_BOXED.
+ 鐃緒申 211 */
+ 鐃緒申 212 const char *gaim_value_get_specific_type(const GaimValue *value);
+ 鐃緒申 213
+ 鐃緒申 214 /**
+ 鐃緒申 215 * Returns whether or not the value is an outgoing value.
+ 鐃緒申 216 *
+ 鐃緒申 217 * @param value The value.
+ 鐃緒申 218 *
+ 鐃緒申 219 * @return TRUE if the value is outgoing, or FALSE otherwise.
+ 鐃緒申 220 */
+ 鐃緒申 221 gboolean gaim_value_is_outgoing(const GaimValue *value);
+ 鐃緒申 222
+ 鐃緒申 223 /**
+ 鐃緒申 224 * Sets the value's character data.
+ 鐃緒申 225 *
+ 鐃緒申 226 * @param value The value.
+ 鐃緒申 227 * @param data The character data.
+ 鐃緒申 228 */
+ 鐃緒申 229 void gaim_value_set_char(GaimValue *value, char data);
+ 鐃緒申 230
+ 鐃緒申 231 /**
+ 鐃緒申 232 * Sets the value's unsigned character data.
+ 鐃緒申 233 *
+ 鐃緒申 234 * @param value The value.
+ 鐃緒申 235 * @param data The unsigned character data.
+ 鐃緒申 236 */
+ 鐃緒申 237 void gaim_value_set_uchar(GaimValue *value, unsigned char data);
+ 鐃緒申 238
+ 鐃緒申 239 /**
+ 鐃緒申 240 * Sets the value's boolean data.
+ 鐃緒申 241 *
+ 鐃緒申 242 * @param value The value.
+ 鐃緒申 243 * @param data The boolean data.
+ 鐃緒申 244 */
+ 鐃緒申 245 void gaim_value_set_boolean(GaimValue *value, gboolean data);
+ 鐃緒申 246
+ 鐃緒申 247 /**
+ 鐃緒申 248 * Sets the value's short integer data.
+ 鐃緒申 249 *
+ 鐃緒申 250 * @param value The value.
+ 鐃緒申 251 * @param data The short integer data.
+ 鐃緒申 252 */
+ 鐃緒申 253 void gaim_value_set_short(GaimValue *value, short data);
+ 鐃緒申 254
+ 鐃緒申 255 /**
+ 鐃緒申 256 * Sets the value's unsigned short integer data.
+ 鐃緒申 257 *
+ 鐃緒申 258 * @param value The value.
+ 鐃緒申 259 * @param data The unsigned short integer data.
+ 鐃緒申 260 */
+ 鐃緒申 261 void gaim_value_set_ushort(GaimValue *value, unsigned short data);
+ 鐃緒申 262
+ 鐃緒申 263 /**
+ 鐃緒申 264 * Sets the value's integer data.
+ 鐃緒申 265 *
+ 鐃緒申 266 * @param value The value.
+ 鐃緒申 267 * @param data The integer data.
+ 鐃緒申 268 */
+ 鐃緒申 269 void gaim_value_set_int(GaimValue *value, int data);
+ 鐃緒申 270
+ 鐃緒申 271 /**
+ 鐃緒申 272 * Sets the value's unsigned integer data.
+ 鐃緒申 273 *
+ 鐃緒申 274 * @param value The value.
+ 鐃緒申 275 * @param data The unsigned integer data.
+ 鐃緒申 276 */
+ 鐃緒申 277 void gaim_value_set_uint(GaimValue *value, unsigned int data);
+ 鐃緒申 278
+ 鐃緒申 279 /**
+ 鐃緒申 280 * Sets the value's long integer data.
+ 鐃緒申 281 *
+ 鐃緒申 282 * @param value The value.
+ 鐃緒申 283 * @param data The long integer data.
+ 鐃緒申 284 */
+ 鐃緒申 285 void gaim_value_set_long(GaimValue *value, long data);
+ 鐃緒申 286
+ 鐃緒申 287 /**
+ 鐃緒申 288 * Sets the value's unsigned long integer data.
+ 鐃緒申 289 *
+ 鐃緒申 290 * @param value The value.
+ 鐃緒申 291 * @param data The unsigned long integer data.
+ 鐃緒申 292 */
+ 鐃緒申 293 void gaim_value_set_ulong(GaimValue *value, unsigned long data);
+ 鐃緒申 294
+ 鐃緒申 295 /**
+ 鐃緒申 296 * Sets the value's 64-bit integer data.
+ 鐃緒申 297 *
+ 鐃緒申 298 * @param value The value.
+ 鐃緒申 299 * @param data The 64-bit integer data.
+ 鐃緒申 300 */
+ 鐃緒申 301 void gaim_value_set_int64(GaimValue *value, gint64 data);
+ 鐃緒申 302
+ 鐃緒申 303 /**
+ 鐃緒申 304 * Sets the value's unsigned 64-bit integer data.
+ 鐃緒申 305 *
+ 鐃緒申 306 * @param value The value.
+ 鐃緒申 307 * @param data The unsigned 64-bit integer data.
+ 鐃緒申 308 */
+ 鐃緒申 309 void gaim_value_set_uint64(GaimValue *value, guint64 data);
+ 鐃緒申 310
+ 鐃緒申 311 /**
+ 鐃緒申 312 * Sets the value's string data.
+ 鐃緒申 313 *
+ 鐃緒申 314 * @param value The value.
+ 鐃緒申 315 * @param data The string data.
+ 鐃緒申 316 */
+ 鐃緒申 317 void gaim_value_set_string(GaimValue *value, const char *data);
+ 鐃緒申 318
+ 鐃緒申 319 /**
+ 鐃緒申 320 * Sets the value's object data.
+ 鐃緒申 321 *
+ 鐃緒申 322 * @param value The value.
+ 鐃緒申 323 * @param data The object data.
+ 鐃緒申 324 */
+ 鐃緒申 325 void gaim_value_set_object(GaimValue *value, void *data);
+ 鐃緒申 326
+ 鐃緒申 327 /**
+ 鐃緒申 328 * Sets the value's pointer data.
+ 鐃緒申 329 *
+ 鐃緒申 330 * @param value The value.
+ 鐃緒申 331 * @param data The pointer data.
+ 鐃緒申 332 */
+ 鐃緒申 333 void gaim_value_set_pointer(GaimValue *value, void *data);
+ 鐃緒申 334
+ 鐃緒申 335 /**
+ 鐃緒申 336 * Sets the value's enum data.
+ 鐃緒申 337 *
+ 鐃緒申 338 * @param value The value.
+ 鐃緒申 339 * @param data The enum data.
+ 鐃緒申 340 */
+ 鐃緒申 341 void gaim_value_set_enum(GaimValue *value, int data);
+ 鐃緒申 342
+ 鐃緒申 343 /**
+ 鐃緒申 344 * Sets the value's boxed data.
+ 鐃緒申 345 *
+ 鐃緒申 346 * @param value The value.
+ 鐃緒申 347 * @param data The boxed data.
+ 鐃緒申 348 */
+ 鐃緒申 349 void gaim_value_set_boxed(GaimValue *value, void *data);
+ 鐃緒申 350
+ 鐃緒申 351 /**
+ 鐃緒申 352 * Returns the value's character data.
+ 鐃緒申 353 *
+ 鐃緒申 354 * @param value The value.
+ 鐃緒申 355 *
+ 鐃緒申 356 * @return The character data.
+ 鐃緒申 357 */
+ 鐃緒申 358 char gaim_value_get_char(const GaimValue *value);
+ 鐃緒申 359
+ 鐃緒申 360 /**
+ 鐃緒申 361 * Returns the value's unsigned character data.
+ 鐃緒申 362 *
+ 鐃緒申 363 * @param value The value.
+ 鐃緒申 364 *
+ 鐃緒申 365 * @return The unsigned character data.
+ 鐃緒申 366 */
+ 鐃緒申 367 unsigned char gaim_value_get_uchar(const GaimValue *value);
+ 鐃緒申 368
+ 鐃緒申 369 /**
+ 鐃緒申 370 * Returns the value's boolean data.
+ 鐃緒申 371 *
+ 鐃緒申 372 * @param value The value.
+ 鐃緒申 373 *
+ 鐃緒申 374 * @return The boolean data.
+ 鐃緒申 375 */
+ 鐃緒申 376 gboolean gaim_value_get_boolean(const GaimValue *value);
+ 鐃緒申 377
+ 鐃緒申 378 /**
+ 鐃緒申 379 * Returns the value's short integer data.
+ 鐃緒申 380 *
+ 鐃緒申 381 * @param value The value.
+ 鐃緒申 382 *
+ 鐃緒申 383 * @return The short integer data.
+ 鐃緒申 384 */
+ 鐃緒申 385 short gaim_value_get_short(const GaimValue *value);
+ 鐃緒申 386
+ 鐃緒申 387 /**
+ 鐃緒申 388 * Returns the value's unsigned short integer data.
+ 鐃緒申 389 *
+ 鐃緒申 390 * @param value The value.
+ 鐃緒申 391 *
+ 鐃緒申 392 * @return The unsigned short integer data.
+ 鐃緒申 393 */
+ 鐃緒申 394 unsigned short gaim_value_get_ushort(const GaimValue *value);
+ 鐃緒申 395
+ 鐃緒申 396 /**
+ 鐃緒申 397 * Returns the value's integer data.
+ 鐃緒申 398 *
+ 鐃緒申 399 * @param value The value.
+ 鐃緒申 400 *
+ 鐃緒申 401 * @return The integer data.
+ 鐃緒申 402 */
+ 鐃緒申 403 int gaim_value_get_int(const GaimValue *value);
+ 鐃緒申 404
+ 鐃緒申 405 /**
+ 鐃緒申 406 * Returns the value's unsigned integer data.
+ 鐃緒申 407 *
+ 鐃緒申 408 * @param value The value.
+ 鐃緒申 409 *
+ 鐃緒申 410 * @return The unsigned integer data.
+ 鐃緒申 411 */
+ 鐃緒申 412 unsigned int gaim_value_get_uint(const GaimValue *value);
+ 鐃緒申 413
+ 鐃緒申 414 /**
+ 鐃緒申 415 * Returns the value's long integer data.
+ 鐃緒申 416 *
+ 鐃緒申 417 * @param value The value.
+ 鐃緒申 418 *
+ 鐃緒申 419 * @return The long integer data.
+ 鐃緒申 420 */
+ 鐃緒申 421 long gaim_value_get_long(const GaimValue *value);
+ 鐃緒申 422
+ 鐃緒申 423 /**
+ 鐃緒申 424 * Returns the value's unsigned long integer data.
+ 鐃緒申 425 *
+ 鐃緒申 426 * @param value The value.
+ 鐃緒申 427 *
+ 鐃緒申 428 * @return The unsigned long integer data.
+ 鐃緒申 429 */
+ 鐃緒申 430 unsigned long gaim_value_get_ulong(const GaimValue *value);
+ 鐃緒申 431
+ 鐃緒申 432 /**
+ 鐃緒申 433 * Returns the value's 64-bit integer data.
+ 鐃緒申 434 *
+ 鐃緒申 435 * @param value The value.
+ 鐃緒申 436 *
+ 鐃緒申 437 * @return The 64-bit integer data.
+ 鐃緒申 438 */
+ 鐃緒申 439 gint64 gaim_value_get_int64(const GaimValue *value);
+ 鐃緒申 440
+ 鐃緒申 441 /**
+ 鐃緒申 442 * Returns the value's unsigned 64-bit integer data.
+ 鐃緒申 443 *
+ 鐃緒申 444 * @param value The value.
+ 鐃緒申 445 *
+ 鐃緒申 446 * @return The unsigned 64-bit integer data.
+ 鐃緒申 447 */
+ 鐃緒申 448 guint64 gaim_value_get_uint64(const GaimValue *value);
+ 鐃緒申 449
+ 鐃緒申 450 /**
+ 鐃緒申 451 * Returns the value's string data.
+ 鐃緒申 452 *
+ 鐃緒申 453 * @param value The value.
+ 鐃緒申 454 *
+ 鐃緒申 455 * @return The string data.
+ 鐃緒申 456 */
+ 鐃緒申 457 const char *gaim_value_get_string(const GaimValue *value);
+ 鐃緒申 458
+ 鐃緒申 459 /**
+ 鐃緒申 460 * Returns the value's object data.
+ 鐃緒申 461 *
+ 鐃緒申 462 * @param value The value.
+ 鐃緒申 463 *
+ 鐃緒申 464 * @return The object data.
+ 鐃緒申 465 */
+ 鐃緒申 466 void *gaim_value_get_object(const GaimValue *value);
+ 鐃緒申 467
+ 鐃緒申 468 /**
+ 鐃緒申 469 * Returns the value's pointer data.
+ 鐃緒申 470 *
+ 鐃緒申 471 * @param value The value.
+ 鐃緒申 472 *
+ 鐃緒申 473 * @return The pointer data.
+ 鐃緒申 474 */
+ 鐃緒申 475 void *gaim_value_get_pointer(const GaimValue *value);
+ 鐃緒申 476
+ 鐃緒申 477 /**
+ 鐃緒申 478 * Returns the value's enum data.
+ 鐃緒申 479 *
+ 鐃緒申 480 * @param value The value.
+ 鐃緒申 481 *
+ 鐃緒申 482 * @return The enum data.
+ 鐃緒申 483 */
+ 鐃緒申 484 int gaim_value_get_enum(const GaimValue *value);
+ 鐃緒申 485
+ 鐃緒申 486 /**
+ 鐃緒申 487 * Returns the value's boxed data.
+ 鐃緒申 488 *
+ 鐃緒申 489 * @param value The value.
+ 鐃緒申 490 *
+ 鐃緒申 491 * @return The boxed data.
+ 鐃緒申 492 */
+ 鐃緒申 493 void *gaim_value_get_boxed(const GaimValue *value);
+ 鐃緒申 494
+ 鐃緒申 495 #ifdef __cplusplus
+ 鐃緒申 496 }
+ 鐃緒申 497 #endif
+ 鐃緒申 498
+ 鐃緒申 499 #endif /* _GAIM_VALUE_H_ */