## 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);
    int                 idmef_value_set_class               (idmef_value_t *value,
                                                             idmef_class_id_t classid,
                                                             void *ptr);
    int                 idmef_value_set_data                (idmef_value_t *value,
                                                             idmef_data_t *data);
    int                 idmef_value_set_double              (idmef_value_t *value,
                                                             double val);
    int                 idmef_value_set_enum                (idmef_value_t *value,
                                                             idmef_class_id_t classid,
                                                             const char *buf);
    int                 idmef_value_set_enum_from_numeric   (idmef_value_t *value,
                                                             idmef_class_id_t classid,
                                                             int no);
    int                 idmef_value_set_enum_from_string    (idmef_value_t *value,
                                                             idmef_class_id_t classid,
                                                             const char *buf);
    int                 idmef_value_set_float               (idmef_value_t *value,
                                                             float val);
    int                 idmef_value_set_int16               (idmef_value_t *value,
                                                             int16_t val);
    int                 idmef_value_set_int32               (idmef_value_t *value,
                                                             int32_t val);
    int                 idmef_value_set_int64               (idmef_value_t *value,
                                                             int64_t val);
    int                 idmef_value_set_int8                (idmef_value_t *value,
                                                             int8_t val);
    int                 idmef_value_set_string              (idmef_value_t *value,
                                                             prelude_string_t *string);
    int                 idmef_value_set_time                (idmef_value_t *value,
                                                             idmef_time_t *time);
    int                 idmef_value_set_uint16              (idmef_value_t *value,
                                                             uint16_t val);
    int                 idmef_value_set_uint32              (idmef_value_t *value,
                                                             uint32_t val);
    int                 idmef_value_set_uint64              (idmef_value_t *value,
                                                             uint64_t val);
    int                 idmef_value_set_uint8               (idmef_value_t *value,
                                                             uint8_t val);
    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                 (const idmef_value_t *value,
                                                             int (callbackidmef_value_t *ptr, void *extra) (),
                                                             void *extra);
    int                 idmef_value_iterate_reversed        (const idmef_value_t *value,
                                                             int (callbackidmef_value_t *ptr, void *extra) (),
                                                             void *extra);
    idmef_value_t *     idmef_value_get_nth                 (const 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);
    int                 idmef_value_get_applicable_operators
                                                            (const idmef_value_t *value,
                                                             idmef_criterion_operator_t *result);
    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_set_class ()

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

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

### idmef_value_set_data ()

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

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

### idmef_value_set_double ()

    int                 idmef_value_set_double              (idmef_value_t *value,
                                                             double val);

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

### idmef_value_set_enum ()

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

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

### idmef_value_set_enum_from_numeric ()

    int                 idmef_value_set_enum_from_numeric   (idmef_value_t *value,
                                                             idmef_class_id_t classid,
                                                             int no);

`value` : |
`classid` : |
`no` : |
Returns : |

### idmef_value_set_enum_from_string ()

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

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

### idmef_value_set_float ()

    int                 idmef_value_set_float               (idmef_value_t *value,
                                                             float val);

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

### idmef_value_set_int16 ()

    int                 idmef_value_set_int16               (idmef_value_t *value,
                                                             int16_t val);

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

### idmef_value_set_int32 ()

    int                 idmef_value_set_int32               (idmef_value_t *value,
                                                             int32_t val);

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

### idmef_value_set_int64 ()

    int                 idmef_value_set_int64               (idmef_value_t *value,
                                                             int64_t val);

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

### idmef_value_set_int8 ()

    int                 idmef_value_set_int8                (idmef_value_t *value,
                                                             int8_t val);

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

### idmef_value_set_string ()

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

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

### idmef_value_set_time ()

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

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

### idmef_value_set_uint16 ()

    int                 idmef_value_set_uint16              (idmef_value_t *value,
                                                             uint16_t val);

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

### idmef_value_set_uint32 ()

    int                 idmef_value_set_uint32              (idmef_value_t *value,
                                                             uint32_t val);

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

### idmef_value_set_uint64 ()

    int                 idmef_value_set_uint64              (idmef_value_t *value,
                                                             uint64_t val);

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

### idmef_value_set_uint8 ()

    int                 idmef_value_set_uint8               (idmef_value_t *value,
                                                             uint8_t val);

`value` : |
`val` : |
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                 (const idmef_value_t *value,
                                                             int (callbackidmef_value_t *ptr, void *extra) (),
                                                             void *extra);

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

### idmef_value_iterate_reversed ()

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

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

### idmef_value_get_nth ()

    idmef_value_t *     idmef_value_get_nth                 (const 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_get_applicable_operators ()

    int                 idmef_value_get_applicable_operators
                                                            (const idmef_value_t *value,
                                                             idmef_criterion_operator_t *result);

Store all operator supported by `value` in `result`.

`value` : | Pointer to a idmef_value_t object.
`result` : | Pointer where the result will be stored.
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.