## idmef-value idmef-value — |

## Synopsis

    typedef     idmef_value_t;
    int         idmef_value_new_int8            (idmef_value_t **value,
                                                 int8_t val);
    int         idmef_value_new_uint8           (idmef_value_t **value,
                                                 uint8_t val);
    int         idmef_value_new_int16           (idmef_value_t **value,
                                                 int16_t val);
    int         idmef_value_new_uint16          (idmef_value_t **value,
                                                 uint16_t val);
    int         idmef_value_new_int32           (idmef_value_t **value,
                                                 int32_t val);
    int         idmef_value_new_uint32          (idmef_value_t **value,
                                                 uint32_t val);
    int         idmef_value_new_int64           (idmef_value_t **value,
                                                 int64_t val);
    int         idmef_value_new_uint64          (idmef_value_t **value,
                                                 uint64_t val);
    int         idmef_value_new_float           (idmef_value_t **value,
                                                 float val);
    int         idmef_value_new_double          (idmef_value_t **value,
                                                 double val);
    int         idmef_value_new_string          (idmef_value_t **value,
                                                 prelude_string_t *string);
    int         idmef_value_new_time            (idmef_value_t **value,
                                                 idmef_time_t *time);
    int         idmef_value_new_data            (idmef_value_t **value,
                                                 idmef_data_t *data);
    int         idmef_value_new_class           (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 void *ptr);
    int         idmef_value_new_list            (idmef_value_t **value);
    int         idmef_value_new_enum            (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 const char *buf);
    int         idmef_value_new_enum_from_string
                                                (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 const char *buf);
    int         idmef_value_new_enum_from_numeric
                                                (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 int val);
    int         idmef_value_new                 (idmef_value_t **value,
                                                 idmef_value_type_id_t type,
                                                 void *ptr);
    int         idmef_value_new_from_path       (idmef_value_t **value,
                                                 idmef_path_t *path,
                                                 const char *buf);
    int         idmef_value_new_from_string     (idmef_value_t **value,
                                                 idmef_value_type_id_t type,
                                                 const char *buf);
    int8_t      idmef_value_get_int8            (const idmef_value_t *val);
    uint8_t     idmef_value_get_uint8           (const idmef_value_t *val);
    int16_t     idmef_value_get_int16           (const idmef_value_t *val);
    uint16_t    idmef_value_get_uint16          (const idmef_value_t *val);
    int32_t     idmef_value_get_int32           (const idmef_value_t *val);
    uint32_t    idmef_value_get_uint32          (const idmef_value_t *val);
    int64_t     idmef_value_get_int64           (const idmef_value_t *val);
    uint64_t    idmef_value_get_uint64          (const idmef_value_t *val);
    int         idmef_value_get_enum            (const idmef_value_t *val);
    float       idmef_value_get_float           (const idmef_value_t *val);
    double      idmef_value_get_double          (const idmef_value_t *val);
    idmef_time_t* idmef_value_get_time          (const idmef_value_t *val);
    idmef_data_t* idmef_value_get_data          (const idmef_value_t *val);
    prelude_string_t* idmef_value_get_string    (const idmef_value_t *val);
    int         idmef_value_list_add            (idmef_value_t *list,
                                                 idmef_value_t *item);
    prelude_bool_t idmef_value_is_list          (const idmef_value_t *list);
    prelude_bool_t idmef_value_list_is_empty    (const idmef_value_t *list);
    int         idmef_value_have_own_data       (idmef_value_t *value);
    int         idmef_value_dont_have_own_data  (idmef_value_t *value);
    idmef_value_type_id_t idmef_value_get_type  (const idmef_value_t *value);
    idmef_class_id_t idmef_value_get_class      (const idmef_value_t *value);
    void*       idmef_value_get_object          (const idmef_value_t *value);
    int         idmef_value_iterate             (idmef_value_t *value,
                                                 int (*callback) (idmef_value_t *ptr, void *extra),
                                                 void *extra);
    int         idmef_value_iterate_reversed    (idmef_value_t *value,
                                                 int (*callback) (idmef_value_t *ptr, void *extra),
                                                 void *extra);
    idmef_value_t* idmef_value_get_nth          (idmef_value_t *val,
                                                 int n);
    int         idmef_value_get_count           (const idmef_value_t *val);
    int         idmef_value_clone               (const idmef_value_t *val,
                                                 idmef_value_t **dst);
    idmef_value_t* idmef_value_ref              (idmef_value_t *val);
    int         idmef_value_print               (const idmef_value_t *val,
                                                 prelude_io_t *fd);
    int         idmef_value_to_string           (const idmef_value_t *val,
                                                 prelude_string_t *out);
    int         idmef_value_get                 (const idmef_value_t *val,
                                                 void *res);
    int         idmef_value_match               (idmef_value_t *val1,
                                                 idmef_value_t *val2,
                                                 idmef_criterion_operator_t op);
    int         idmef_value_check_operator      (const idmef_value_t *value,
                                                 idmef_criterion_operator_t op);
    void        idmef_value_destroy             (idmef_value_t *val);

## Description

## Details

### idmef_value_t

    typedef struct idmef_value idmef_value_t;

### idmef_value_new_int8 ()

    int         idmef_value_new_int8            (idmef_value_t **value,
                                                 int8_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_uint8 ()

    int         idmef_value_new_uint8           (idmef_value_t **value,
                                                 uint8_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_int16 ()

    int         idmef_value_new_int16           (idmef_value_t **value,
                                                 int16_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_uint16 ()

    int         idmef_value_new_uint16          (idmef_value_t **value,
                                                 uint16_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_int32 ()

    int         idmef_value_new_int32           (idmef_value_t **value,
                                                 int32_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_uint32 ()

    int         idmef_value_new_uint32          (idmef_value_t **value,
                                                 uint32_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_int64 ()

    int         idmef_value_new_int64           (idmef_value_t **value,
                                                 int64_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_uint64 ()

    int         idmef_value_new_uint64          (idmef_value_t **value,
                                                 uint64_t val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_float ()

    int         idmef_value_new_float           (idmef_value_t **value,
                                                 float val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_double ()

    int         idmef_value_new_double          (idmef_value_t **value,
                                                 double val);

`value` : |
`val` : |
Returns : |

### idmef_value_new_string ()

    int         idmef_value_new_string          (idmef_value_t **value,
                                                 prelude_string_t *string);

`value` : |
`string` : |
Returns : |

### idmef_value_new_time ()

    int         idmef_value_new_time            (idmef_value_t **value,
                                                 idmef_time_t *time);

`value` : |
`time` : |
Returns : |

### idmef_value_new_data ()

    int         idmef_value_new_data            (idmef_value_t **value,
                                                 idmef_data_t *data);

`value` : |
`data` : |
Returns : |

### idmef_value_new_class ()

    int         idmef_value_new_class           (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 void *ptr);

`value` : |
`classid` : |
`ptr` : |
Returns : |

### idmef_value_new_list ()

    int         idmef_value_new_list            (idmef_value_t **value);

`value` : |
Returns : |

### idmef_value_new_enum ()

    int         idmef_value_new_enum            (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 const char *buf);

`value` : |
`classid` : |
`buf` : |
Returns : |

### idmef_value_new_enum_from_string ()

    int         idmef_value_new_enum_from_string
                                                (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 const char *buf);

`value` : |
`classid` : |
`buf` : |
Returns : |

### idmef_value_new_enum_from_numeric ()

    int         idmef_value_new_enum_from_numeric
                                                (idmef_value_t **value,
                                                 idmef_class_id_t classid,
                                                 int val);

`value` : |
`classid` : |
`val` : |
Returns : |

### idmef_value_new ()

    int         idmef_value_new                 (idmef_value_t **value,
                                                 idmef_value_type_id_t type,
                                                 void *ptr);

`value` : |
`type` : |
`ptr` : |
Returns : |

### idmef_value_new_from_path ()

    int         idmef_value_new_from_path       (idmef_value_t **value,
                                                 idmef_path_t *path,
                                                 const char *buf);

`value` : |
`path` : |
`buf` : |
Returns : |

### idmef_value_new_from_string ()

    int         idmef_value_new_from_string     (idmef_value_t **value,
                                                 idmef_value_type_id_t type,
                                                 const char *buf);

`value` : |
`type` : |
`buf` : |
Returns : |

### idmef_value_get_int8 ()

    int8_t      idmef_value_get_int8            (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_uint8 ()

    uint8_t     idmef_value_get_uint8           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_int16 ()

    int16_t     idmef_value_get_int16           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_uint16 ()

    uint16_t    idmef_value_get_uint16          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_int32 ()

    int32_t     idmef_value_get_int32           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_uint32 ()

    uint32_t    idmef_value_get_uint32          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_int64 ()

    int64_t     idmef_value_get_int64           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_uint64 ()

    uint64_t    idmef_value_get_uint64          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_enum ()

    int         idmef_value_get_enum            (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_float ()

    float       idmef_value_get_float           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_double ()

    double      idmef_value_get_double          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_time ()

    idmef_time_t* idmef_value_get_time          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_data ()

    idmef_data_t* idmef_value_get_data          (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_get_string ()

    prelude_string_t* idmef_value_get_string    (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_list_add ()

    int         idmef_value_list_add            (idmef_value_t *list,
                                                 idmef_value_t *item);

`list` : |
`item` : |
Returns : |

### idmef_value_is_list ()

    prelude_bool_t idmef_value_is_list          (const idmef_value_t *list);

`list` : |
Returns : |

### idmef_value_list_is_empty ()

    prelude_bool_t idmef_value_list_is_empty    (const idmef_value_t *list);

`list` : |
Returns : |

### idmef_value_have_own_data ()

    int         idmef_value_have_own_data       (idmef_value_t *value);

`value` : |
Returns : |

### idmef_value_dont_have_own_data ()

    int         idmef_value_dont_have_own_data  (idmef_value_t *value);

`value` : |
Returns : |

### idmef_value_get_type ()

    idmef_value_type_id_t idmef_value_get_type  (const idmef_value_t *value);

`value` : |
Returns : |

### idmef_value_get_class ()

    idmef_class_id_t idmef_value_get_class      (const idmef_value_t *value);

`value` : |
Returns : |

### idmef_value_get_object ()

    void*       idmef_value_get_object          (const idmef_value_t *value);

`value` : |
Returns : |

### idmef_value_iterate ()

    int         idmef_value_iterate             (idmef_value_t *value,
                                                 int (*callback) (idmef_value_t *ptr, void *extra),
                                                 void *extra);

`value` : |
`callback` : |
`extra` : |
Returns : |

### idmef_value_iterate_reversed ()

    int         idmef_value_iterate_reversed    (idmef_value_t *value,
                                                 int (*callback) (idmef_value_t *ptr, void *extra),
                                                 void *extra);

`value` : |
`callback` : |
`extra` : |
Returns : |

### idmef_value_get_nth ()

    idmef_value_t* idmef_value_get_nth          (idmef_value_t *val,
                                                 int n);

`val` : |
`n` : |
Returns : |

### idmef_value_get_count ()

    int         idmef_value_get_count           (const idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_clone ()

    int         idmef_value_clone               (const idmef_value_t *val,
                                                 idmef_value_t **dst);

`val` : |
`dst` : |
Returns : |

### idmef_value_ref ()

    idmef_value_t* idmef_value_ref              (idmef_value_t *val);

`val` : |
Returns : |

### idmef_value_print ()

    int         idmef_value_print               (const idmef_value_t *val,
                                                 prelude_io_t *fd);

`val` : |
`fd` : |
Returns : |

### idmef_value_to_string ()

    int         idmef_value_to_string           (const idmef_value_t *val,
                                                 prelude_string_t *out);

`val` : |
`out` : |
Returns : |

### idmef_value_get ()

    int         idmef_value_get                 (const idmef_value_t *val,
                                                 void *res);

`val` : |
`res` : |
Returns : |

### idmef_value_match ()

    int         idmef_value_match               (idmef_value_t *val1,
                                                 idmef_value_t *val2,
                                                 idmef_criterion_operator_t op);

Match `val1` and `val2` using `op`.

`val1` : | Pointer to a idmef_value_t object.
`val2` : | Pointer to a idmef_value_t object.
`op` : | operator to use for matching.
Returns : | the number of match, 0 for none, a negative value if an error occured.

### idmef_value_check_operator ()

    int         idmef_value_check_operator      (const idmef_value_t *value,
                                                 idmef_criterion_operator_t op);

Check whether `op` can apply to `value`.

`value` : | Pointer to a idmef_value_t object.
`op` : | Type of operator to check `value` for.
Returns : | 0 on success, a negative value if an error occured.

### idmef_value_destroy ()

    void        idmef_value_destroy             (idmef_value_t *val);

Decrement refcount and destroy `value` if it reach 0.

`val` : | Pointer to a idmef_value_t object.