## idmef-tree-wrap

idmef-tree-wrap — Generating events using the low level IDMEF API

## Synopsis

    #define             IDMEF_LIST_APPEND
    #define             IDMEF_LIST_PREPEND
    int                 idmef_message_get_data              (idmef_message_t *message,
                                                             const char *path,
                                                             unsigned char **data,
                                                             size_t *size);
    int                 idmef_message_get_number            (idmef_message_t *message,
                                                             const char *path,
                                                             double *result);
    int                 idmef_message_get_string            (idmef_message_t *message,
                                                             const char *path,
                                                             char **result);
    int                 idmef_message_get_value             (idmef_message_t *message,
                                                             const char *path,
                                                             idmef_value_t **value);
    int                 idmef_message_set_data              (idmef_message_t *message,
                                                             const char *path,
                                                             unsigned char *data,
                                                             size_t size);
    int                 idmef_message_set_number            (idmef_message_t *message,
                                                             const char *path,
                                                             double number);
    int                 idmef_message_set_string            (idmef_message_t *message,
                                                             const char *path,
                                                             const char *value);
    int                 idmef_message_set_value             (idmef_message_t *message,
                                                             const char *path,
                                                             idmef_value_t *value);
    enum                idmef_additional_data_type_t;
    idmef_additional_data_type_t  idmef_additional_data_type_to_numeric
                                                            (const char *name);
    const char *        idmef_additional_data_type_to_string
                                                            (idmef_additional_data_type_t val);
    typedef             idmef_additional_data_t;
    int                 idmef_additional_data_new           (idmef_additional_data_t **ret);
    int                 idmef_additional_data_copy          (const idmef_additional_data_t *src,
                                                             idmef_additional_data_t *dst);
    int                 idmef_additional_data_clone         (idmef_additional_data_t *src,
                                                             idmef_additional_data_t **dst);
    idmef_additional_data_t * idmef_additional_data_ref     (idmef_additional_data_t *additional_data);
    void                idmef_additional_data_destroy       (idmef_additional_data_t *ptr);
    idmef_additional_data_type_t  idmef_additional_data_get_type
                                                            (idmef_additional_data_t *ptr);
    void                idmef_additional_data_set_type      (idmef_additional_data_t *ptr,
                                                             idmef_additional_data_type_t type);
    int                 idmef_additional_data_new_type      (idmef_additional_data_t *ptr,
                                                             idmef_additional_data_type_t **ret);
    prelude_string_t *  idmef_additional_data_get_meaning   (idmef_additional_data_t *ptr);
    void                idmef_additional_data_set_meaning   (idmef_additional_data_t *ptr,
                                                             prelude_string_t *meaning);
    int                 idmef_additional_data_new_meaning   (idmef_additional_data_t *ptr,
                                                             prelude_string_t **ret);
    idmef_data_t *      idmef_additional_data_get_data      (idmef_additional_data_t *ptr);
    void                idmef_additional_data_set_data      (idmef_additional_data_t *ptr,
                                                             idmef_data_t *data);
    int                 idmef_additional_data_new_data      (idmef_additional_data_t *ptr,
                                                             idmef_data_t **ret);
    enum                idmef_reference_origin_t;
    idmef_reference_origin_t  idmef_reference_origin_to_numeric
                                                            (const char *name);
    const char *        idmef_reference_origin_to_string    (idmef_reference_origin_t val);
    typedef             idmef_reference_t;
    int                 idmef_reference_new                 (idmef_reference_t **ret);
    int                 idmef_reference_copy                (const idmef_reference_t *src,
                                                             idmef_reference_t *dst);
    int                 idmef_reference_clone               (idmef_reference_t *src,
                                                             idmef_reference_t **dst);
    idmef_reference_t * idmef_reference_ref                 (idmef_reference_t *reference);
    void                idmef_reference_destroy             (idmef_reference_t *ptr);
    idmef_reference_origin_t  idmef_reference_get_origin    (idmef_reference_t *ptr);
    void                idmef_reference_set_origin          (idmef_reference_t *ptr,
                                                             idmef_reference_origin_t origin);
    int                 idmef_reference_new_origin          (idmef_reference_t *ptr,
                                                             idmef_reference_origin_t **ret);
    prelude_string_t *  idmef_reference_get_name            (idmef_reference_t *ptr);
    void                idmef_reference_set_name            (idmef_reference_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_reference_new_name            (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_reference_get_url             (idmef_reference_t *ptr);
    void                idmef_reference_set_url             (idmef_reference_t *ptr,
                                                             prelude_string_t *url);
    int                 idmef_reference_new_url             (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_reference_get_meaning         (idmef_reference_t *ptr);
    void                idmef_reference_set_meaning         (idmef_reference_t *ptr,
                                                             prelude_string_t *meaning);
    int                 idmef_reference_new_meaning         (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);
    typedef             idmef_classification_t;
    int                 idmef_classification_new            (idmef_classification_t **ret);
    int                 idmef_classification_copy           (const idmef_classification_t *src,
                                                             idmef_classification_t *dst);
    int                 idmef_classification_clone          (idmef_classification_t *src,
                                                             idmef_classification_t **dst);
    idmef_classification_t * idmef_classification_ref       (idmef_classification_t *classification);
    void                idmef_classification_destroy        (idmef_classification_t *ptr);
    prelude_string_t *  idmef_classification_get_ident      (idmef_classification_t *ptr);
    void                idmef_classification_set_ident      (idmef_classification_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_classification_new_ident      (idmef_classification_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_classification_get_text       (idmef_classification_t *ptr);
    void                idmef_classification_set_text       (idmef_classification_t *ptr,
                                                             prelude_string_t *text);
    int                 idmef_classification_new_text       (idmef_classification_t *ptr,
                                                             prelude_string_t **ret);
    idmef_reference_t * idmef_classification_get_next_reference
                                                            (idmef_classification_t *classification,
                                                             idmef_reference_t *reference_cur);
    void                idmef_classification_set_reference  (idmef_classification_t *ptr,
                                                             idmef_reference_t *object,
                                                             int pos);
    int                 idmef_classification_new_reference  (idmef_classification_t *ptr,
                                                             idmef_reference_t **ret,
                                                             int pos);
    enum                idmef_user_id_type_t;
    idmef_user_id_type_t  idmef_user_id_type_to_numeric     (const char *name);
    const char *        idmef_user_id_type_to_string        (idmef_user_id_type_t val);
    typedef             idmef_user_id_t;
    int                 idmef_user_id_new                   (idmef_user_id_t **ret);
    int                 idmef_user_id_copy                  (const idmef_user_id_t *src,
                                                             idmef_user_id_t *dst);
    int                 idmef_user_id_clone                 (idmef_user_id_t *src,
                                                             idmef_user_id_t **dst);
    idmef_user_id_t *   idmef_user_id_ref                   (idmef_user_id_t *user_id);
    void                idmef_user_id_destroy               (idmef_user_id_t *ptr);
    prelude_string_t *  idmef_user_id_get_ident             (idmef_user_id_t *ptr);
    void                idmef_user_id_set_ident             (idmef_user_id_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_user_id_new_ident             (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);
    idmef_user_id_type_t  idmef_user_id_get_type            (idmef_user_id_t *ptr);
    void                idmef_user_id_set_type              (idmef_user_id_t *ptr,
                                                             idmef_user_id_type_t type);
    int                 idmef_user_id_new_type              (idmef_user_id_t *ptr,
                                                             idmef_user_id_type_t **ret);
    prelude_string_t *  idmef_user_id_get_tty               (idmef_user_id_t *ptr);
    void                idmef_user_id_set_tty               (idmef_user_id_t *ptr,
                                                             prelude_string_t *tty);
    int                 idmef_user_id_new_tty               (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_user_id_get_name              (idmef_user_id_t *ptr);
    void                idmef_user_id_set_name              (idmef_user_id_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_user_id_new_name              (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_user_id_unset_number          (idmef_user_id_t *ptr);
    uint32_t *          idmef_user_id_get_number            (idmef_user_id_t *ptr);
    void                idmef_user_id_set_number            (idmef_user_id_t *ptr,
                                                             uint32_t number);
    int                 idmef_user_id_new_number            (idmef_user_id_t *ptr,
                                                             uint32_t **ret);
    enum                idmef_user_category_t;
    idmef_user_category_t  idmef_user_category_to_numeric   (const char *name);
    const char *        idmef_user_category_to_string       (idmef_user_category_t val);
    typedef             idmef_user_t;
    int                 idmef_user_new                      (idmef_user_t **ret);
    int                 idmef_user_copy                     (const idmef_user_t *src,
                                                             idmef_user_t *dst);
    int                 idmef_user_clone                    (idmef_user_t *src,
                                                             idmef_user_t **dst);
    idmef_user_t *      idmef_user_ref                      (idmef_user_t *user);
    void                idmef_user_destroy                  (idmef_user_t *ptr);
    prelude_string_t *  idmef_user_get_ident                (idmef_user_t *ptr);
    void                idmef_user_set_ident                (idmef_user_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_user_new_ident                (idmef_user_t *ptr,
                                                             prelude_string_t **ret);
    idmef_user_category_t  idmef_user_get_category          (idmef_user_t *ptr);
    void                idmef_user_set_category             (idmef_user_t *ptr,
                                                             idmef_user_category_t category);
    int                 idmef_user_new_category             (idmef_user_t *ptr,
                                                             idmef_user_category_t **ret);
    idmef_user_id_t *   idmef_user_get_next_user_id         (idmef_user_t *user,
                                                             idmef_user_id_t *user_id_cur);
    void                idmef_user_set_user_id              (idmef_user_t *ptr,
                                                             idmef_user_id_t *object,
                                                             int pos);
    int                 idmef_user_new_user_id              (idmef_user_t *ptr,
                                                             idmef_user_id_t **ret,
                                                             int pos);
    enum                idmef_address_category_t;
    idmef_address_category_t  idmef_address_category_to_numeric
                                                            (const char *name);
    const char *        idmef_address_category_to_string    (idmef_address_category_t val);
    typedef             idmef_address_t;
    int                 idmef_address_new                   (idmef_address_t **ret);
    int                 idmef_address_copy                  (const idmef_address_t *src,
                                                             idmef_address_t *dst);
    int                 idmef_address_clone                 (idmef_address_t *src,
                                                             idmef_address_t **dst);
    idmef_address_t *   idmef_address_ref                   (idmef_address_t *address);
    void                idmef_address_destroy               (idmef_address_t *ptr);
    prelude_string_t *  idmef_address_get_ident             (idmef_address_t *ptr);
    void                idmef_address_set_ident             (idmef_address_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_address_new_ident             (idmef_address_t *ptr,
                                                             prelude_string_t **ret);
    idmef_address_category_t  idmef_address_get_category    (idmef_address_t *ptr);
    void                idmef_address_set_category          (idmef_address_t *ptr,
                                                             idmef_address_category_t category);
    int                 idmef_address_new_category          (idmef_address_t *ptr,
                                                             idmef_address_category_t **ret);
    prelude_string_t *  idmef_address_get_vlan_name         (idmef_address_t *ptr);
    void                idmef_address_set_vlan_name         (idmef_address_t *ptr,
                                                             prelude_string_t *vlan_name);
    int                 idmef_address_new_vlan_name         (idmef_address_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_address_unset_vlan_num        (idmef_address_t *ptr);
    int32_t *           idmef_address_get_vlan_num          (idmef_address_t *ptr);
    void                idmef_address_set_vlan_num          (idmef_address_t *ptr,
                                                             int32_t vlan_num);
    int                 idmef_address_new_vlan_num          (idmef_address_t *ptr,
                                                             int32_t **ret);
    prelude_string_t *  idmef_address_get_address           (idmef_address_t *ptr);
    void                idmef_address_set_address           (idmef_address_t *ptr,
                                                             prelude_string_t *address);
    int                 idmef_address_new_address           (idmef_address_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_address_get_netmask           (idmef_address_t *ptr);
    void                idmef_address_set_netmask           (idmef_address_t *ptr,
                                                             prelude_string_t *netmask);
    int                 idmef_address_new_netmask           (idmef_address_t *ptr,
                                                             prelude_string_t **ret);
    typedef             idmef_process_t;
    int                 idmef_process_new                   (idmef_process_t **ret);
    int                 idmef_process_copy                  (const idmef_process_t *src,
                                                             idmef_process_t *dst);
    int                 idmef_process_clone                 (idmef_process_t *src,
                                                             idmef_process_t **dst);
    idmef_process_t *   idmef_process_ref                   (idmef_process_t *process);
    void                idmef_process_destroy               (idmef_process_t *ptr);
    prelude_string_t *  idmef_process_get_ident             (idmef_process_t *ptr);
    void                idmef_process_set_ident             (idmef_process_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_process_new_ident             (idmef_process_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_process_get_name              (idmef_process_t *ptr);
    void                idmef_process_set_name              (idmef_process_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_process_new_name              (idmef_process_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_process_unset_pid             (idmef_process_t *ptr);
    uint32_t *          idmef_process_get_pid               (idmef_process_t *ptr);
    void                idmef_process_set_pid               (idmef_process_t *ptr,
                                                             uint32_t pid);
    int                 idmef_process_new_pid               (idmef_process_t *ptr,
                                                             uint32_t **ret);
    prelude_string_t *  idmef_process_get_path              (idmef_process_t *ptr);
    void                idmef_process_set_path              (idmef_process_t *ptr,
                                                             prelude_string_t *path);
    int                 idmef_process_new_path              (idmef_process_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_process_get_next_arg          (idmef_process_t *process,
                                                             prelude_string_t *prelude_string_cur);
    void                idmef_process_set_arg               (idmef_process_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);
    int                 idmef_process_new_arg               (idmef_process_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);
    prelude_string_t *  idmef_process_get_next_env          (idmef_process_t *process,
                                                             prelude_string_t *prelude_string_cur);
    void                idmef_process_set_env               (idmef_process_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);
    int                 idmef_process_new_env               (idmef_process_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);
    typedef             idmef_web_service_t;
    int                 idmef_web_service_new               (idmef_web_service_t **ret);
    int                 idmef_web_service_copy              (const idmef_web_service_t *src,
                                                             idmef_web_service_t *dst);
    int                 idmef_web_service_clone             (idmef_web_service_t *src,
                                                             idmef_web_service_t **dst);
    idmef_web_service_t * idmef_web_service_ref             (idmef_web_service_t *web_service);
    void                idmef_web_service_destroy           (idmef_web_service_t *ptr);
    prelude_string_t *  idmef_web_service_get_url           (idmef_web_service_t *ptr);
    void                idmef_web_service_set_url           (idmef_web_service_t *ptr,
                                                             prelude_string_t *url);
    int                 idmef_web_service_new_url           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_web_service_get_cgi           (idmef_web_service_t *ptr);
    void                idmef_web_service_set_cgi           (idmef_web_service_t *ptr,
                                                             prelude_string_t *cgi);
    int                 idmef_web_service_new_cgi           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_web_service_get_http_method   (idmef_web_service_t *ptr);
    void                idmef_web_service_set_http_method   (idmef_web_service_t *ptr,
                                                             prelude_string_t *http_method);
    int                 idmef_web_service_new_http_method   (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_web_service_get_next_arg      (idmef_web_service_t *web_service,
                                                             prelude_string_t *prelude_string_cur);
    void                idmef_web_service_set_arg           (idmef_web_service_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);
    int                 idmef_web_service_new_arg           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);
    typedef             idmef_snmp_service_t;
    int                 idmef_snmp_service_new              (idmef_snmp_service_t **ret);
    int                 idmef_snmp_service_copy             (const idmef_snmp_service_t *src,
                                                             idmef_snmp_service_t *dst);
    int                 idmef_snmp_service_clone            (idmef_snmp_service_t *src,
                                                             idmef_snmp_service_t **dst);
    idmef_snmp_service_t * idmef_snmp_service_ref           (idmef_snmp_service_t *snmp_service);
    void                idmef_snmp_service_destroy          (idmef_snmp_service_t *ptr);
    prelude_string_t *  idmef_snmp_service_get_oid          (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_oid          (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *oid);
    int                 idmef_snmp_service_new_oid          (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_snmp_service_unset_message_processing_model
                                                            (idmef_snmp_service_t *ptr);
    uint32_t *          idmef_snmp_service_get_message_processing_model
                                                            (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_message_processing_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t message_processing_model);
    int                 idmef_snmp_service_new_message_processing_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);
    void                idmef_snmp_service_unset_security_model
                                                            (idmef_snmp_service_t *ptr);
    uint32_t *          idmef_snmp_service_get_security_model
                                                            (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_security_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t security_model);
    int                 idmef_snmp_service_new_security_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);
    prelude_string_t *  idmef_snmp_service_get_security_name
                                                            (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_security_name
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *security_name);
    int                 idmef_snmp_service_new_security_name
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_snmp_service_unset_security_level
                                                            (idmef_snmp_service_t *ptr);
    uint32_t *          idmef_snmp_service_get_security_level
                                                            (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_security_level
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t security_level);
    int                 idmef_snmp_service_new_security_level
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);
    prelude_string_t *  idmef_snmp_service_get_context_name (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_context_name (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *context_name);
    int                 idmef_snmp_service_new_context_name (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_snmp_service_get_context_engine_id
                                                            (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_context_engine_id
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *context_engine_id);
    int                 idmef_snmp_service_new_context_engine_id
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_snmp_service_get_command      (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_command      (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *command);
    int                 idmef_snmp_service_new_command      (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_snmp_service_get_community    (idmef_snmp_service_t *ptr);
    void                idmef_snmp_service_set_community    (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *community);
    int                 idmef_snmp_service_new_community    (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);
    enum                idmef_service_type_t;
    idmef_service_type_t  idmef_service_type_to_numeric     (const char *name);
    const char *        idmef_service_type_to_string        (idmef_service_type_t val);
    typedef             idmef_service_t;
    int                 idmef_service_new                   (idmef_service_t **ret);
    int                 idmef_service_copy                  (const idmef_service_t *src,
                                                             idmef_service_t *dst);
    int                 idmef_service_clone                 (idmef_service_t *src,
                                                             idmef_service_t **dst);
    idmef_service_t *   idmef_service_ref                   (idmef_service_t *service);
    void                idmef_service_destroy               (idmef_service_t *ptr);
    prelude_string_t *  idmef_service_get_ident             (idmef_service_t *ptr);
    void                idmef_service_set_ident             (idmef_service_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_service_new_ident             (idmef_service_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_service_unset_ip_version      (idmef_service_t *ptr);
    uint8_t *           idmef_service_get_ip_version        (idmef_service_t *ptr);
    void                idmef_service_set_ip_version        (idmef_service_t *ptr,
                                                             uint8_t ip_version);
    int                 idmef_service_new_ip_version        (idmef_service_t *ptr,
                                                             uint8_t **ret);
    void                idmef_service_unset_iana_protocol_number
                                                            (idmef_service_t *ptr);
    uint8_t *           idmef_service_get_iana_protocol_number
                                                            (idmef_service_t *ptr);
    void                idmef_service_set_iana_protocol_number
                                                            (idmef_service_t *ptr,
                                                             uint8_t iana_protocol_number);
    int                 idmef_service_new_iana_protocol_number
                                                            (idmef_service_t *ptr,
                                                             uint8_t **ret);
    prelude_string_t *  idmef_service_get_iana_protocol_name
                                                            (idmef_service_t *ptr);
    void                idmef_service_set_iana_protocol_name
                                                            (idmef_service_t *ptr,
                                                             prelude_string_t *iana_protocol_name);
    int                 idmef_service_new_iana_protocol_name
                                                            (idmef_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_service_get_name              (idmef_service_t *ptr);
    void                idmef_service_set_name              (idmef_service_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_service_new_name              (idmef_service_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_service_unset_port            (idmef_service_t *ptr);
    uint16_t *          idmef_service_get_port              (idmef_service_t *ptr);
    void                idmef_service_set_port              (idmef_service_t *ptr,
                                                             uint16_t port);
    int                 idmef_service_new_port              (idmef_service_t *ptr,
                                                             uint16_t **ret);
    prelude_string_t *  idmef_service_get_portlist          (idmef_service_t *ptr);
    void                idmef_service_set_portlist          (idmef_service_t *ptr,
                                                             prelude_string_t *portlist);
    int                 idmef_service_new_portlist          (idmef_service_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_service_get_protocol          (idmef_service_t *ptr);
    void                idmef_service_set_protocol          (idmef_service_t *ptr,
                                                             prelude_string_t *protocol);
    int                 idmef_service_new_protocol          (idmef_service_t *ptr,
                                                             prelude_string_t **ret);
    idmef_service_type_t  idmef_service_get_type            (idmef_service_t *ptr);
    idmef_web_service_t * idmef_service_get_web_service     (idmef_service_t *ptr);
    void                idmef_service_set_web_service       (idmef_service_t *ptr,
                                                             idmef_web_service_t *web_service);
    int                 idmef_service_new_web_service       (idmef_service_t *ptr,
                                                             idmef_web_service_t **ret);
    idmef_snmp_service_t * idmef_service_get_snmp_service   (idmef_service_t *ptr);
    void                idmef_service_set_snmp_service      (idmef_service_t *ptr,
                                                             idmef_snmp_service_t *snmp_service);
    int                 idmef_service_new_snmp_service      (idmef_service_t *ptr,
                                                             idmef_snmp_service_t **ret);
    enum                idmef_node_category_t;
    idmef_node_category_t  idmef_node_category_to_numeric   (const char *name);
    const char *        idmef_node_category_to_string       (idmef_node_category_t val);
    typedef             idmef_node_t;
    int                 idmef_node_new                      (idmef_node_t **ret);
    int                 idmef_node_copy                     (const idmef_node_t *src,
                                                             idmef_node_t *dst);
    int                 idmef_node_clone                    (idmef_node_t *src,
                                                             idmef_node_t **dst);
    idmef_node_t *      idmef_node_ref                      (idmef_node_t *node);
    void                idmef_node_destroy                  (idmef_node_t *ptr);
    prelude_string_t *  idmef_node_get_ident                (idmef_node_t *ptr);
    void                idmef_node_set_ident                (idmef_node_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_node_new_ident                (idmef_node_t *ptr,
                                                             prelude_string_t **ret);
    idmef_node_category_t  idmef_node_get_category          (idmef_node_t *ptr);
    void                idmef_node_set_category             (idmef_node_t *ptr,
                                                             idmef_node_category_t category);
    int                 idmef_node_new_category             (idmef_node_t *ptr,
                                                             idmef_node_category_t **ret);
    prelude_string_t *  idmef_node_get_location             (idmef_node_t *ptr);
    void                idmef_node_set_location             (idmef_node_t *ptr,
                                                             prelude_string_t *location);
    int                 idmef_node_new_location             (idmef_node_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_node_get_name                 (idmef_node_t *ptr);
    void                idmef_node_set_name                 (idmef_node_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_node_new_name                 (idmef_node_t *ptr,
                                                             prelude_string_t **ret);
    idmef_address_t *   idmef_node_get_next_address         (idmef_node_t *node,
                                                             idmef_address_t *address_cur);
    void                idmef_node_set_address              (idmef_node_t *ptr,
                                                             idmef_address_t *object,
                                                             int pos);
    int                 idmef_node_new_address              (idmef_node_t *ptr,
                                                             idmef_address_t **ret,
                                                             int pos);
    enum                idmef_source_spoofed_t;
    idmef_source_spoofed_t  idmef_source_spoofed_to_numeric (const char *name);
    const char *        idmef_source_spoofed_to_string      (idmef_source_spoofed_t val);
    typedef             idmef_source_t;
    int                 idmef_source_new                    (idmef_source_t **ret);
    int                 idmef_source_copy                   (const idmef_source_t *src,
                                                             idmef_source_t *dst);
    int                 idmef_source_clone                  (idmef_source_t *src,
                                                             idmef_source_t **dst);
    idmef_source_t *    idmef_source_ref                    (idmef_source_t *source);
    void                idmef_source_destroy                (idmef_source_t *ptr);
    prelude_string_t *  idmef_source_get_ident              (idmef_source_t *ptr);
    void                idmef_source_set_ident              (idmef_source_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_source_new_ident              (idmef_source_t *ptr,
                                                             prelude_string_t **ret);
    idmef_source_spoofed_t  idmef_source_get_spoofed        (idmef_source_t *ptr);
    void                idmef_source_set_spoofed            (idmef_source_t *ptr,
                                                             idmef_source_spoofed_t spoofed);
    int                 idmef_source_new_spoofed            (idmef_source_t *ptr,
                                                             idmef_source_spoofed_t **ret);
    prelude_string_t *  idmef_source_get_interface          (idmef_source_t *ptr);
    void                idmef_source_set_interface          (idmef_source_t *ptr,
                                                             prelude_string_t *interface);
    int                 idmef_source_new_interface          (idmef_source_t *ptr,
                                                             prelude_string_t **ret);
    idmef_node_t *      idmef_source_get_node               (idmef_source_t *ptr);
    void                idmef_source_set_node               (idmef_source_t *ptr,
                                                             idmef_node_t *node);
    int                 idmef_source_new_node               (idmef_source_t *ptr,
                                                             idmef_node_t **ret);
    idmef_user_t *      idmef_source_get_user               (idmef_source_t *ptr);
    void                idmef_source_set_user               (idmef_source_t *ptr,
                                                             idmef_user_t *user);
    int                 idmef_source_new_user               (idmef_source_t *ptr,
                                                             idmef_user_t **ret);
    idmef_process_t *   idmef_source_get_process            (idmef_source_t *ptr);
    void                idmef_source_set_process            (idmef_source_t *ptr,
                                                             idmef_process_t *process);
    int                 idmef_source_new_process            (idmef_source_t *ptr,
                                                             idmef_process_t **ret);
    idmef_service_t *   idmef_source_get_service            (idmef_source_t *ptr);
    void                idmef_source_set_service            (idmef_source_t *ptr,
                                                             idmef_service_t *service);
    int                 idmef_source_new_service            (idmef_source_t *ptr,
                                                             idmef_service_t **ret);
    typedef             idmef_file_access_t;
    int                 idmef_file_access_new               (idmef_file_access_t **ret);
    int                 idmef_file_access_copy              (const idmef_file_access_t *src,
                                                             idmef_file_access_t *dst);
    int                 idmef_file_access_clone             (idmef_file_access_t *src,
                                                             idmef_file_access_t **dst);
    idmef_file_access_t * idmef_file_access_ref             (idmef_file_access_t *file_access);
    void                idmef_file_access_destroy           (idmef_file_access_t *ptr);
    idmef_user_id_t *   idmef_file_access_get_user_id       (idmef_file_access_t *ptr);
    void                idmef_file_access_set_user_id       (idmef_file_access_t *ptr,
                                                             idmef_user_id_t *user_id);
    int                 idmef_file_access_new_user_id       (idmef_file_access_t *ptr,
                                                             idmef_user_id_t **ret);
    prelude_string_t *  idmef_file_access_get_next_permission
                                                            (idmef_file_access_t *file_access,
                                                             prelude_string_t *prelude_string_cur);
    void                idmef_file_access_set_permission    (idmef_file_access_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);
    int                 idmef_file_access_new_permission    (idmef_file_access_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);
    typedef             idmef_inode_t;
    int                 idmef_inode_new                     (idmef_inode_t **ret);
    int                 idmef_inode_copy                    (const idmef_inode_t *src,
                                                             idmef_inode_t *dst);
    int                 idmef_inode_clone                   (idmef_inode_t *src,
                                                             idmef_inode_t **dst);
    idmef_inode_t *     idmef_inode_ref                     (idmef_inode_t *inode);
    void                idmef_inode_destroy                 (idmef_inode_t *ptr);
    idmef_time_t *      idmef_inode_get_change_time         (idmef_inode_t *ptr);
    void                idmef_inode_set_change_time         (idmef_inode_t *ptr,
                                                             idmef_time_t *change_time);
    int                 idmef_inode_new_change_time         (idmef_inode_t *ptr,
                                                             idmef_time_t **ret);
    void                idmef_inode_unset_number            (idmef_inode_t *ptr);
    uint32_t *          idmef_inode_get_number              (idmef_inode_t *ptr);
    void                idmef_inode_set_number              (idmef_inode_t *ptr,
                                                             uint32_t number);
    int                 idmef_inode_new_number              (idmef_inode_t *ptr,
                                                             uint32_t **ret);
    void                idmef_inode_unset_major_device      (idmef_inode_t *ptr);
    uint32_t *          idmef_inode_get_major_device        (idmef_inode_t *ptr);
    void                idmef_inode_set_major_device        (idmef_inode_t *ptr,
                                                             uint32_t major_device);
    int                 idmef_inode_new_major_device        (idmef_inode_t *ptr,
                                                             uint32_t **ret);
    void                idmef_inode_unset_minor_device      (idmef_inode_t *ptr);
    uint32_t *          idmef_inode_get_minor_device        (idmef_inode_t *ptr);
    void                idmef_inode_set_minor_device        (idmef_inode_t *ptr,
                                                             uint32_t minor_device);
    int                 idmef_inode_new_minor_device        (idmef_inode_t *ptr,
                                                             uint32_t **ret);
    void                idmef_inode_unset_c_major_device    (idmef_inode_t *ptr);
    uint32_t *          idmef_inode_get_c_major_device      (idmef_inode_t *ptr);
    void                idmef_inode_set_c_major_device      (idmef_inode_t *ptr,
                                                             uint32_t c_major_device);
    int                 idmef_inode_new_c_major_device      (idmef_inode_t *ptr,
                                                             uint32_t **ret);
    void                idmef_inode_unset_c_minor_device    (idmef_inode_t *ptr);
    uint32_t *          idmef_inode_get_c_minor_device      (idmef_inode_t *ptr);
    void                idmef_inode_set_c_minor_device      (idmef_inode_t *ptr,
                                                             uint32_t c_minor_device);
    int                 idmef_inode_new_c_minor_device      (idmef_inode_t *ptr,
                                                             uint32_t **ret);
    typedef             idmef_linkage_t;
    enum                idmef_checksum_algorithm_t;
    idmef_checksum_algorithm_t  idmef_checksum_algorithm_to_numeric
                                                            (const char *name);
    const char *        idmef_checksum_algorithm_to_string  (idmef_checksum_algorithm_t val);
    typedef             idmef_checksum_t;
    int                 idmef_checksum_new                  (idmef_checksum_t **ret);
    int                 idmef_checksum_copy                 (const idmef_checksum_t *src,
                                                             idmef_checksum_t *dst);
    int                 idmef_checksum_clone                (idmef_checksum_t *src,
                                                             idmef_checksum_t **dst);
    idmef_checksum_t *  idmef_checksum_ref                  (idmef_checksum_t *checksum);
    void                idmef_checksum_destroy              (idmef_checksum_t *ptr);
    prelude_string_t *  idmef_checksum_get_value            (idmef_checksum_t *ptr);
    void                idmef_checksum_set_value            (idmef_checksum_t *ptr,
                                                             prelude_string_t *value);
    int                 idmef_checksum_new_value            (idmef_checksum_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_checksum_get_key              (idmef_checksum_t *ptr);
    void                idmef_checksum_set_key              (idmef_checksum_t *ptr,
                                                             prelude_string_t *key);
    int                 idmef_checksum_new_key              (idmef_checksum_t *ptr,
                                                             prelude_string_t **ret);
    idmef_checksum_algorithm_t  idmef_checksum_get_algorithm
                                                            (idmef_checksum_t *ptr);
    void                idmef_checksum_set_algorithm        (idmef_checksum_t *ptr,
                                                             idmef_checksum_algorithm_t algorithm);
    int                 idmef_checksum_new_algorithm        (idmef_checksum_t *ptr,
                                                             idmef_checksum_algorithm_t **ret);
    enum                idmef_file_category_t;
    idmef_file_category_t  idmef_file_category_to_numeric   (const char *name);
    const char *        idmef_file_category_to_string       (idmef_file_category_t val);
    enum                idmef_file_fstype_t;
    idmef_file_fstype_t  idmef_file_fstype_to_numeric       (const char *name);
    const char *        idmef_file_fstype_to_string         (idmef_file_fstype_t val);
    typedef             idmef_file_t;
    int                 idmef_file_new                      (idmef_file_t **ret);
    int                 idmef_file_copy                     (const idmef_file_t *src,
                                                             idmef_file_t *dst);
    int                 idmef_file_clone                    (idmef_file_t *src,
                                                             idmef_file_t **dst);
    idmef_file_t *      idmef_file_ref                      (idmef_file_t *file);
    void                idmef_file_destroy                  (idmef_file_t *ptr);
    prelude_string_t *  idmef_file_get_ident                (idmef_file_t *ptr);
    void                idmef_file_set_ident                (idmef_file_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_file_new_ident                (idmef_file_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_file_get_name                 (idmef_file_t *ptr);
    void                idmef_file_set_name                 (idmef_file_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_file_new_name                 (idmef_file_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_file_get_path                 (idmef_file_t *ptr);
    void                idmef_file_set_path                 (idmef_file_t *ptr,
                                                             prelude_string_t *path);
    int                 idmef_file_new_path                 (idmef_file_t *ptr,
                                                             prelude_string_t **ret);
    idmef_time_t *      idmef_file_get_create_time          (idmef_file_t *ptr);
    void                idmef_file_set_create_time          (idmef_file_t *ptr,
                                                             idmef_time_t *create_time);
    int                 idmef_file_new_create_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);
    idmef_time_t *      idmef_file_get_modify_time          (idmef_file_t *ptr);
    void                idmef_file_set_modify_time          (idmef_file_t *ptr,
                                                             idmef_time_t *modify_time);
    int                 idmef_file_new_modify_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);
    idmef_time_t *      idmef_file_get_access_time          (idmef_file_t *ptr);
    void                idmef_file_set_access_time          (idmef_file_t *ptr,
                                                             idmef_time_t *access_time);
    int                 idmef_file_new_access_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);
    void                idmef_file_unset_data_size          (idmef_file_t *ptr);
    uint64_t *          idmef_file_get_data_size            (idmef_file_t *ptr);
    void                idmef_file_set_data_size            (idmef_file_t *ptr,
                                                             uint64_t data_size);
    int                 idmef_file_new_data_size            (idmef_file_t *ptr,
                                                             uint64_t **ret);
    void                idmef_file_unset_disk_size          (idmef_file_t *ptr);
    uint64_t *          idmef_file_get_disk_size            (idmef_file_t *ptr);
    void                idmef_file_set_disk_size            (idmef_file_t *ptr,
                                                             uint64_t disk_size);
    int                 idmef_file_new_disk_size            (idmef_file_t *ptr,
                                                             uint64_t **ret);
    idmef_file_access_t * idmef_file_get_next_file_access   (idmef_file_t *file,
                                                             idmef_file_access_t *file_access_cur);
    void                idmef_file_set_file_access          (idmef_file_t *ptr,
                                                             idmef_file_access_t *object,
                                                             int pos);
    int                 idmef_file_new_file_access          (idmef_file_t *ptr,
                                                             idmef_file_access_t **ret,
                                                             int pos);
    idmef_linkage_t *   idmef_file_get_next_linkage         (idmef_file_t *file,
                                                             idmef_linkage_t *linkage_cur);
    void                idmef_file_set_linkage              (idmef_file_t *ptr,
                                                             idmef_linkage_t *object,
                                                             int pos);
    int                 idmef_file_new_linkage              (idmef_file_t *ptr,
                                                             idmef_linkage_t **ret,
                                                             int pos);
    idmef_inode_t *     idmef_file_get_inode                (idmef_file_t *ptr);
    void                idmef_file_set_inode                (idmef_file_t *ptr,
                                                             idmef_inode_t *inode);
    int                 idmef_file_new_inode                (idmef_file_t *ptr,
                                                             idmef_inode_t **ret);
    idmef_checksum_t *  idmef_file_get_next_checksum        (idmef_file_t *file,
                                                             idmef_checksum_t *checksum_cur);
    void                idmef_file_set_checksum             (idmef_file_t *ptr,
                                                             idmef_checksum_t *object,
                                                             int pos);
    int                 idmef_file_new_checksum             (idmef_file_t *ptr,
                                                             idmef_checksum_t **ret,
                                                             int pos);
    idmef_file_category_t  idmef_file_get_category          (idmef_file_t *ptr);
    void                idmef_file_set_category             (idmef_file_t *ptr,
                                                             idmef_file_category_t category);
    int                 idmef_file_new_category             (idmef_file_t *ptr,
                                                             idmef_file_category_t **ret);
    void                idmef_file_unset_fstype             (idmef_file_t *ptr);
    idmef_file_fstype_t * idmef_file_get_fstype             (idmef_file_t *ptr);
    void                idmef_file_set_fstype               (idmef_file_t *ptr,
                                                             idmef_file_fstype_t fstype);
    int                 idmef_file_new_fstype               (idmef_file_t *ptr,
                                                             idmef_file_fstype_t **ret);
    prelude_string_t *  idmef_file_get_file_type            (idmef_file_t *ptr);
    void                idmef_file_set_file_type            (idmef_file_t *ptr,
                                                             prelude_string_t *file_type);
    int                 idmef_file_new_file_type            (idmef_file_t *ptr,
                                                             prelude_string_t **ret);
    enum                idmef_linkage_category_t;
    idmef_linkage_category_t  idmef_linkage_category_to_numeric
                                                            (const char *name);
    const char *        idmef_linkage_category_to_string    (idmef_linkage_category_t val);
    int                 idmef_linkage_new                   (idmef_linkage_t **ret);
    int                 idmef_linkage_copy                  (const idmef_linkage_t *src,
                                                             idmef_linkage_t *dst);
    int                 idmef_linkage_clone                 (idmef_linkage_t *src,
                                                             idmef_linkage_t **dst);
    idmef_linkage_t *   idmef_linkage_ref                   (idmef_linkage_t *linkage);
    void                idmef_linkage_destroy               (idmef_linkage_t *ptr);
    idmef_linkage_category_t  idmef_linkage_get_category    (idmef_linkage_t *ptr);
    void                idmef_linkage_set_category          (idmef_linkage_t *ptr,
                                                             idmef_linkage_category_t category);
    int                 idmef_linkage_new_category          (idmef_linkage_t *ptr,
                                                             idmef_linkage_category_t **ret);
    prelude_string_t *  idmef_linkage_get_name              (idmef_linkage_t *ptr);
    void                idmef_linkage_set_name              (idmef_linkage_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_linkage_new_name              (idmef_linkage_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_linkage_get_path              (idmef_linkage_t *ptr);
    void                idmef_linkage_set_path              (idmef_linkage_t *ptr,
                                                             prelude_string_t *path);
    int                 idmef_linkage_new_path              (idmef_linkage_t *ptr,
                                                             prelude_string_t **ret);
    idmef_file_t *      idmef_linkage_get_file              (idmef_linkage_t *ptr);
    void                idmef_linkage_set_file              (idmef_linkage_t *ptr,
                                                             idmef_file_t *file);
    int                 idmef_linkage_new_file              (idmef_linkage_t *ptr,
                                                             idmef_file_t **ret);
    enum                idmef_target_decoy_t;
    idmef_target_decoy_t  idmef_target_decoy_to_numeric     (const char *name);
    const char *        idmef_target_decoy_to_string        (idmef_target_decoy_t val);
    typedef             idmef_target_t;
    int                 idmef_target_new                    (idmef_target_t **ret);
    int                 idmef_target_copy                   (const idmef_target_t *src,
                                                             idmef_target_t *dst);
    int                 idmef_target_clone                  (idmef_target_t *src,
                                                             idmef_target_t **dst);
    idmef_target_t *    idmef_target_ref                    (idmef_target_t *target);
    void                idmef_target_destroy                (idmef_target_t *ptr);
    prelude_string_t *  idmef_target_get_ident              (idmef_target_t *ptr);
    void                idmef_target_set_ident              (idmef_target_t *ptr,
                                                             prelude_string_t *ident);
    int                 idmef_target_new_ident              (idmef_target_t *ptr,
                                                             prelude_string_t **ret);
    idmef_target_decoy_t  idmef_target_get_decoy            (idmef_target_t *ptr);
    void                idmef_target_set_decoy              (idmef_target_t *ptr,
                                                             idmef_target_decoy_t decoy);
    int                 idmef_target_new_decoy              (idmef_target_t *ptr,
                                                             idmef_target_decoy_t **ret);
    prelude_string_t *  idmef_target_get_interface          (idmef_target_t *ptr);
    void                idmef_target_set_interface          (idmef_target_t *ptr,
                                                             prelude_string_t *interface);
    int                 idmef_target_new_interface          (idmef_target_t *ptr,
                                                             prelude_string_t **ret);
    idmef_node_t *      idmef_target_get_node               (idmef_target_t *ptr);
    void                idmef_target_set_node               (idmef_target_t *ptr,
                                                             idmef_node_t *node);
    int                 idmef_target_new_node               (idmef_target_t *ptr,
                                                             idmef_node_t **ret);
    idmef_user_t *      idmef_target_get_user               (idmef_target_t *ptr);
    void                idmef_target_set_user               (idmef_target_t *ptr,
                                                             idmef_user_t *user);
    int                 idmef_target_new_user               (idmef_target_t *ptr,
                                                             idmef_user_t **ret);
    idmef_process_t *   idmef_target_get_process            (idmef_target_t *ptr);
    void                idmef_target_set_process            (idmef_target_t *ptr,
                                                             idmef_process_t *process);
    int                 idmef_target_new_process            (idmef_target_t *ptr,
                                                             idmef_process_t **ret);
    idmef_service_t *   idmef_target_get_service            (idmef_target_t *ptr);
    void                idmef_target_set_service            (idmef_target_t *ptr,
                                                             idmef_service_t *service);
    int                 idmef_target_new_service            (idmef_target_t *ptr,
                                                             idmef_service_t **ret);
    idmef_file_t *      idmef_target_get_next_file          (idmef_target_t *target,
                                                             idmef_file_t *file_cur);
    void                idmef_target_set_file               (idmef_target_t *ptr,
                                                             idmef_file_t *object,
                                                             int pos);
    int                 idmef_target_new_file               (idmef_target_t *ptr,
                                                             idmef_file_t **ret,
                                                             int pos);
    typedef             idmef_analyzer_t;
    int                 idmef_analyzer_new                  (idmef_analyzer_t **ret);
    int                 idmef_analyzer_copy                 (const idmef_analyzer_t *src,
                                                             idmef_analyzer_t *dst);
    int                 idmef_analyzer_clone                (idmef_analyzer_t *src,
                                                             idmef_analyzer_t **dst);
    idmef_analyzer_t *  idmef_analyzer_ref                  (idmef_analyzer_t *analyzer);
    void                idmef_analyzer_destroy              (idmef_analyzer_t *ptr);
    prelude_string_t *  idmef_analyzer_get_analyzerid       (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_analyzerid       (idmef_analyzer_t *ptr,
                                                             prelude_string_t *analyzerid);
    int                 idmef_analyzer_new_analyzerid       (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_name             (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_name             (idmef_analyzer_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_analyzer_new_name             (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_manufacturer     (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_manufacturer     (idmef_analyzer_t *ptr,
                                                             prelude_string_t *manufacturer);
    int                 idmef_analyzer_new_manufacturer     (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_model            (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_model            (idmef_analyzer_t *ptr,
                                                             prelude_string_t *model);
    int                 idmef_analyzer_new_model            (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_version          (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_version          (idmef_analyzer_t *ptr,
                                                             prelude_string_t *version);
    int                 idmef_analyzer_new_version          (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_class            (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_class            (idmef_analyzer_t *ptr,
                                                             prelude_string_t *class_str);
    int                 idmef_analyzer_new_class            (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_ostype           (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_ostype           (idmef_analyzer_t *ptr,
                                                             prelude_string_t *ostype);
    int                 idmef_analyzer_new_ostype           (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_analyzer_get_osversion        (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_osversion        (idmef_analyzer_t *ptr,
                                                             prelude_string_t *osversion);
    int                 idmef_analyzer_new_osversion        (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);
    idmef_node_t *      idmef_analyzer_get_node             (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_node             (idmef_analyzer_t *ptr,
                                                             idmef_node_t *node);
    int                 idmef_analyzer_new_node             (idmef_analyzer_t *ptr,
                                                             idmef_node_t **ret);
    idmef_process_t *   idmef_analyzer_get_process          (idmef_analyzer_t *ptr);
    void                idmef_analyzer_set_process          (idmef_analyzer_t *ptr,
                                                             idmef_process_t *process);
    int                 idmef_analyzer_new_process          (idmef_analyzer_t *ptr,
                                                             idmef_process_t **ret);
    typedef             idmef_alertident_t;
    int                 idmef_alertident_new                (idmef_alertident_t **ret);
    int                 idmef_alertident_copy               (const idmef_alertident_t *src,
                                                             idmef_alertident_t *dst);
    int                 idmef_alertident_clone              (idmef_alertident_t *src,
                                                             idmef_alertident_t **dst);
    idmef_alertident_t * idmef_alertident_ref               (idmef_alertident_t *alertident);
    void                idmef_alertident_destroy            (idmef_alertident_t *ptr);
    prelude_string_t *  idmef_alertident_get_alertident     (idmef_alertident_t *ptr);
    void                idmef_alertident_set_alertident     (idmef_alertident_t *ptr,
                                                             prelude_string_t *alertident);
    int                 idmef_alertident_new_alertident     (idmef_alertident_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_alertident_get_analyzerid     (idmef_alertident_t *ptr);
    void                idmef_alertident_set_analyzerid     (idmef_alertident_t *ptr,
                                                             prelude_string_t *analyzerid);
    int                 idmef_alertident_new_analyzerid     (idmef_alertident_t *ptr,
                                                             prelude_string_t **ret);
    enum                idmef_impact_severity_t;
    idmef_impact_severity_t  idmef_impact_severity_to_numeric
                                                            (const char *name);
    const char *        idmef_impact_severity_to_string     (idmef_impact_severity_t val);
    enum                idmef_impact_completion_t;
    idmef_impact_completion_t  idmef_impact_completion_to_numeric
                                                            (const char *name);
    const char *        idmef_impact_completion_to_string   (idmef_impact_completion_t val);
    enum                idmef_impact_type_t;
    idmef_impact_type_t  idmef_impact_type_to_numeric       (const char *name);
    const char *        idmef_impact_type_to_string         (idmef_impact_type_t val);
    typedef             idmef_impact_t;
    int                 idmef_impact_new                    (idmef_impact_t **ret);
    int                 idmef_impact_copy                   (const idmef_impact_t *src,
                                                             idmef_impact_t *dst);
    int                 idmef_impact_clone                  (idmef_impact_t *src,
                                                             idmef_impact_t **dst);
    idmef_impact_t *    idmef_impact_ref                    (idmef_impact_t *impact);
    void                idmef_impact_destroy                (idmef_impact_t *ptr);
    void                idmef_impact_unset_severity         (idmef_impact_t *ptr);
    idmef_impact_severity_t * idmef_impact_get_severity     (idmef_impact_t *ptr);
    void                idmef_impact_set_severity           (idmef_impact_t *ptr,
                                                             idmef_impact_severity_t severity);
    int                 idmef_impact_new_severity           (idmef_impact_t *ptr,
                                                             idmef_impact_severity_t **ret);
    void                idmef_impact_unset_completion       (idmef_impact_t *ptr);
    idmef_impact_completion_t * idmef_impact_get_completion (idmef_impact_t *ptr);
    void                idmef_impact_set_completion         (idmef_impact_t *ptr,
                                                             idmef_impact_completion_t completion);
    int                 idmef_impact_new_completion         (idmef_impact_t *ptr,
                                                             idmef_impact_completion_t **ret);
    idmef_impact_type_t  idmef_impact_get_type              (idmef_impact_t *ptr);
    void                idmef_impact_set_type               (idmef_impact_t *ptr,
                                                             idmef_impact_type_t type);
    int                 idmef_impact_new_type               (idmef_impact_t *ptr,
                                                             idmef_impact_type_t **ret);
    prelude_string_t *  idmef_impact_get_description        (idmef_impact_t *ptr);
    void                idmef_impact_set_description        (idmef_impact_t *ptr,
                                                             prelude_string_t *description);
    int                 idmef_impact_new_description        (idmef_impact_t *ptr,
                                                             prelude_string_t **ret);
    enum                idmef_action_category_t;
    idmef_action_category_t  idmef_action_category_to_numeric
                                                            (const char *name);
    const char *        idmef_action_category_to_string     (idmef_action_category_t val);
    typedef             idmef_action_t;
    int                 idmef_action_new                    (idmef_action_t **ret);
    int                 idmef_action_copy                   (const idmef_action_t *src,
                                                             idmef_action_t *dst);
    int                 idmef_action_clone                  (idmef_action_t *src,
                                                             idmef_action_t **dst);
    idmef_action_t *    idmef_action_ref                    (idmef_action_t *action);
    void                idmef_action_destroy                (idmef_action_t *ptr);
    idmef_action_category_t  idmef_action_get_category      (idmef_action_t *ptr);
    void                idmef_action_set_category           (idmef_action_t *ptr,
                                                             idmef_action_category_t category);
    int                 idmef_action_new_category           (idmef_action_t *ptr,
                                                             idmef_action_category_t **ret);
    prelude_string_t *  idmef_action_get_description        (idmef_action_t *ptr);
    void                idmef_action_set_description        (idmef_action_t *ptr,
                                                             prelude_string_t *description);
    int                 idmef_action_new_description        (idmef_action_t *ptr,
                                                             prelude_string_t **ret);
    enum                idmef_confidence_rating_t;
    idmef_confidence_rating_t  idmef_confidence_rating_to_numeric
                                                            (const char *name);
    const char *        idmef_confidence_rating_to_string   (idmef_confidence_rating_t val);
    typedef             idmef_confidence_t;
    int                 idmef_confidence_new                (idmef_confidence_t **ret);
    int                 idmef_confidence_copy               (const idmef_confidence_t *src,
                                                             idmef_confidence_t *dst);
    int                 idmef_confidence_clone              (idmef_confidence_t *src,
                                                             idmef_confidence_t **dst);
    idmef_confidence_t * idmef_confidence_ref               (idmef_confidence_t *confidence);
    void                idmef_confidence_destroy            (idmef_confidence_t *ptr);
    idmef_confidence_rating_t  idmef_confidence_get_rating  (idmef_confidence_t *ptr);
    void                idmef_confidence_set_rating         (idmef_confidence_t *ptr,
                                                             idmef_confidence_rating_t rating);
    int                 idmef_confidence_new_rating         (idmef_confidence_t *ptr,
                                                             idmef_confidence_rating_t **ret);
    float               idmef_confidence_get_confidence     (idmef_confidence_t *ptr);
    void                idmef_confidence_set_confidence     (idmef_confidence_t *ptr,
                                                             float confidence);
    int                 idmef_confidence_new_confidence     (idmef_confidence_t *ptr,
                                                             float **ret);
    typedef             idmef_assessment_t;
    int                 idmef_assessment_new                (idmef_assessment_t **ret);
    int                 idmef_assessment_copy               (const idmef_assessment_t *src,
                                                             idmef_assessment_t *dst);
    int                 idmef_assessment_clone              (idmef_assessment_t *src,
                                                             idmef_assessment_t **dst);
    idmef_assessment_t * idmef_assessment_ref               (idmef_assessment_t *assessment);
    void                idmef_assessment_destroy            (idmef_assessment_t *ptr);
    idmef_impact_t *    idmef_assessment_get_impact         (idmef_assessment_t *ptr);
    void                idmef_assessment_set_impact         (idmef_assessment_t *ptr,
                                                             idmef_impact_t *impact);
    int                 idmef_assessment_new_impact         (idmef_assessment_t *ptr,
                                                             idmef_impact_t **ret);
    idmef_action_t *    idmef_assessment_get_next_action    (idmef_assessment_t *assessment,
                                                             idmef_action_t *action_cur);
    void                idmef_assessment_set_action         (idmef_assessment_t *ptr,
                                                             idmef_action_t *object,
                                                             int pos);
    int                 idmef_assessment_new_action         (idmef_assessment_t *ptr,
                                                             idmef_action_t **ret,
                                                             int pos);
    idmef_confidence_t * idmef_assessment_get_confidence    (idmef_assessment_t *ptr);
    void                idmef_assessment_set_confidence     (idmef_assessment_t *ptr,
                                                             idmef_confidence_t *confidence);
    int                 idmef_assessment_new_confidence     (idmef_assessment_t *ptr,
                                                             idmef_confidence_t **ret);
    typedef             idmef_tool_alert_t;
    int                 idmef_tool_alert_new                (idmef_tool_alert_t **ret);
    int                 idmef_tool_alert_copy               (const idmef_tool_alert_t *src,
                                                             idmef_tool_alert_t *dst);
    int                 idmef_tool_alert_clone              (idmef_tool_alert_t *src,
                                                             idmef_tool_alert_t **dst);
    idmef_tool_alert_t * idmef_tool_alert_ref               (idmef_tool_alert_t *tool_alert);
    void                idmef_tool_alert_destroy            (idmef_tool_alert_t *ptr);
    prelude_string_t *  idmef_tool_alert_get_name           (idmef_tool_alert_t *ptr);
    void                idmef_tool_alert_set_name           (idmef_tool_alert_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_tool_alert_new_name           (idmef_tool_alert_t *ptr,
                                                             prelude_string_t **ret);
    prelude_string_t *  idmef_tool_alert_get_command        (idmef_tool_alert_t *ptr);
    void                idmef_tool_alert_set_command        (idmef_tool_alert_t *ptr,
                                                             prelude_string_t *command);
    int                 idmef_tool_alert_new_command        (idmef_tool_alert_t *ptr,
                                                             prelude_string_t **ret);
    idmef_alertident_t * idmef_tool_alert_get_next_alertident
                                                            (idmef_tool_alert_t *tool_alert,
                                                             idmef_alertident_t *alertident_cur);
    void                idmef_tool_alert_set_alertident     (idmef_tool_alert_t *ptr,
                                                             idmef_alertident_t *object,
                                                             int pos);
    int                 idmef_tool_alert_new_alertident     (idmef_tool_alert_t *ptr,
                                                             idmef_alertident_t **ret,
                                                             int pos);
    typedef             idmef_correlation_alert_t;
    int                 idmef_correlation_alert_new         (idmef_correlation_alert_t **ret);
    int                 idmef_correlation_alert_copy        (const idmef_correlation_alert_t *src,
                                                             idmef_correlation_alert_t *dst);
    int                 idmef_correlation_alert_clone       (idmef_correlation_alert_t *src,
                                                             idmef_correlation_alert_t **dst);
    idmef_correlation_alert_t * idmef_correlation_alert_ref (idmef_correlation_alert_t *correlation_alert);
    void                idmef_correlation_alert_destroy     (idmef_correlation_alert_t *ptr);
    prelude_string_t *  idmef_correlation_alert_get_name    (idmef_correlation_alert_t *ptr);
    void                idmef_correlation_alert_set_name    (idmef_correlation_alert_t *ptr,
                                                             prelude_string_t *name);
    int                 idmef_correlation_alert_new_name    (idmef_correlation_alert_t *ptr,
                                                             prelude_string_t **ret);
    idmef_alertident_t * idmef_correlation_alert_get_next_alertident
                                                            (idmef_correlation_alert_t *correlation_alert,
                                                             idmef_alertident_t *alertident_cur);
    void                idmef_correlation_alert_set_alertident
                                                            (idmef_correlation_alert_t *ptr,
                                                             idmef_alertident_t *object,
                                                             int pos);
    int                 idmef_correlation_alert_new_alertident
                                                            (idmef_correlation_alert_t *ptr,
                                                             idmef_alertident_t **ret,
                                                             int pos);
    typedef             idmef_overflow_alert_t;
    int                 idmef_overflow_alert_new            (idmef_overflow_alert_t **ret);
    int                 idmef_overflow_alert_copy           (const idmef_overflow_alert_t *src,
                                                             idmef_overflow_alert_t *dst);
    int                 idmef_overflow_alert_clone          (idmef_overflow_alert_t *src,
                                                             idmef_overflow_alert_t **dst);
    idmef_overflow_alert_t * idmef_overflow_alert_ref       (idmef_overflow_alert_t *overflow_alert);
    void                idmef_overflow_alert_destroy        (idmef_overflow_alert_t *ptr);
    prelude_string_t *  idmef_overflow_alert_get_program    (idmef_overflow_alert_t *ptr);
    void                idmef_overflow_alert_set_program    (idmef_overflow_alert_t *ptr,
                                                             prelude_string_t *program);
    int                 idmef_overflow_alert_new_program    (idmef_overflow_alert_t *ptr,
                                                             prelude_string_t **ret);
    void                idmef_overflow_alert_unset_size     (idmef_overflow_alert_t *ptr);
    uint32_t *          idmef_overflow_alert_get_size       (idmef_overflow_alert_t *ptr);
    void                idmef_overflow_alert_set_size       (idmef_overflow_alert_t *ptr,
                                                             uint32_t size);
    int                 idmef_overflow_alert_new_size       (idmef_overflow_alert_t *ptr,
                                                             uint32_t **ret);
    idmef_data_t *      idmef_overflow_alert_get_buffer     (idmef_overflow_alert_t *ptr);
    void                idmef_overflow_alert_set_buffer     (idmef_overflow_alert_t *ptr,
                                                             idmef_data_t *buffer);
    int                 idmef_overflow_alert_new_buffer     (idmef_overflow_alert_t *ptr,
                                                             idmef_data_t **ret);
    enum                idmef_alert_type_t;
    idmef_alert_type_t  idmef_alert_type_to_numeric         (const char *name);
    const char *        idmef_alert_type_to_string          (idmef_alert_type_t val);
    typedef             idmef_alert_t;
    int                 idmef_alert_new                     (idmef_alert_t **ret);
    int                 idmef_alert_copy                    (const idmef_alert_t *src,
                                                             idmef_alert_t *dst);
    int                 idmef_alert_clone                   (idmef_alert_t *src,
                                                             idmef_alert_t **dst);
    idmef_alert_t *     idmef_alert_ref                     (idmef_alert_t *alert);
    void                idmef_alert_destroy                 (idmef_alert_t *ptr);
    prelude_string_t *  idmef_alert_get_messageid           (idmef_alert_t *ptr);
    void                idmef_alert_set_messageid           (idmef_alert_t *ptr,
                                                             prelude_string_t *messageid);
    int                 idmef_alert_new_messageid           (idmef_alert_t *ptr,
                                                             prelude_string_t **ret);
    idmef_analyzer_t *  idmef_alert_get_next_analyzer       (idmef_alert_t *alert,
                                                             idmef_analyzer_t *analyzer_cur);
    void                idmef_alert_set_analyzer            (idmef_alert_t *ptr,
                                                             idmef_analyzer_t *object,
                                                             int pos);
    int                 idmef_alert_new_analyzer            (idmef_alert_t *ptr,
                                                             idmef_analyzer_t **ret,
                                                             int pos);
    idmef_time_t *      idmef_alert_get_create_time         (idmef_alert_t *ptr);
    void                idmef_alert_set_create_time         (idmef_alert_t *ptr,
                                                             idmef_time_t *create_time);
    int                 idmef_alert_new_create_time         (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);
    idmef_classification_t * idmef_alert_get_classification (idmef_alert_t *ptr);
    void                idmef_alert_set_classification      (idmef_alert_t *ptr,
                                                             idmef_classification_t *classification);
    int                 idmef_alert_new_classification      (idmef_alert_t *ptr,
                                                             idmef_classification_t **ret);
    idmef_time_t *      idmef_alert_get_detect_time         (idmef_alert_t *ptr);
    void                idmef_alert_set_detect_time         (idmef_alert_t *ptr,
                                                             idmef_time_t *detect_time);
    int                 idmef_alert_new_detect_time         (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);
    idmef_time_t *      idmef_alert_get_analyzer_time       (idmef_alert_t *ptr);
    void                idmef_alert_set_analyzer_time       (idmef_alert_t *ptr,
                                                             idmef_time_t *analyzer_time);
    int                 idmef_alert_new_analyzer_time       (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);
    idmef_source_t *    idmef_alert_get_next_source         (idmef_alert_t *alert,
                                                             idmef_source_t *source_cur);
    void                idmef_alert_set_source              (idmef_alert_t *ptr,
                                                             idmef_source_t *object,
                                                             int pos);
    int                 idmef_alert_new_source              (idmef_alert_t *ptr,
                                                             idmef_source_t **ret,
                                                             int pos);
    idmef_target_t *    idmef_alert_get_next_target         (idmef_alert_t *alert,
                                                             idmef_target_t *target_cur);
    void                idmef_alert_set_target              (idmef_alert_t *ptr,
                                                             idmef_target_t *object,
                                                             int pos);
    int                 idmef_alert_new_target              (idmef_alert_t *ptr,
                                                             idmef_target_t **ret,
                                                             int pos);
    idmef_assessment_t * idmef_alert_get_assessment         (idmef_alert_t *ptr);
    void                idmef_alert_set_assessment          (idmef_alert_t *ptr,
                                                             idmef_assessment_t *assessment);
    int                 idmef_alert_new_assessment          (idmef_alert_t *ptr,
                                                             idmef_assessment_t **ret);
    idmef_additional_data_t * idmef_alert_get_next_additional_data
                                                            (idmef_alert_t *alert,
                                                             idmef_additional_data_t *additional_data_cur);
    void                idmef_alert_set_additional_data     (idmef_alert_t *ptr,
                                                             idmef_additional_data_t *object,
                                                             int pos);
    int                 idmef_alert_new_additional_data     (idmef_alert_t *ptr,
                                                             idmef_additional_data_t **ret,
                                                             int pos);
    idmef_alert_type_t  idmef_alert_get_type                (idmef_alert_t *ptr);
    idmef_tool_alert_t * idmef_alert_get_tool_alert         (idmef_alert_t *ptr);
    void                idmef_alert_set_tool_alert          (idmef_alert_t *ptr,
                                                             idmef_tool_alert_t *tool_alert);
    int                 idmef_alert_new_tool_alert          (idmef_alert_t *ptr,
                                                             idmef_tool_alert_t **ret);
    idmef_correlation_alert_t * idmef_alert_get_correlation_alert
                                                            (idmef_alert_t *ptr);
    void                idmef_alert_set_correlation_alert   (idmef_alert_t *ptr,
                                                             idmef_correlation_alert_t *correlation_alert);
    int                 idmef_alert_new_correlation_alert   (idmef_alert_t *ptr,
                                                             idmef_correlation_alert_t **ret);
    idmef_overflow_alert_t * idmef_alert_get_overflow_alert (idmef_alert_t *ptr);
    void                idmef_alert_set_overflow_alert      (idmef_alert_t *ptr,
                                                             idmef_overflow_alert_t *overflow_alert);
    int                 idmef_alert_new_overflow_alert      (idmef_alert_t *ptr,
                                                             idmef_overflow_alert_t **ret);
    typedef             idmef_heartbeat_t;
    int                 idmef_heartbeat_new                 (idmef_heartbeat_t **ret);
    int                 idmef_heartbeat_copy                (const idmef_heartbeat_t *src,
                                                             idmef_heartbeat_t *dst);
    int                 idmef_heartbeat_clone               (idmef_heartbeat_t *src,
                                                             idmef_heartbeat_t **dst);
    idmef_heartbeat_t * idmef_heartbeat_ref                 (idmef_heartbeat_t *heartbeat);
    void                idmef_heartbeat_destroy             (idmef_heartbeat_t *ptr);
    prelude_string_t *  idmef_heartbeat_get_messageid       (idmef_heartbeat_t *ptr);
    void                idmef_heartbeat_set_messageid       (idmef_heartbeat_t *ptr,
                                                             prelude_string_t *messageid);
    int                 idmef_heartbeat_new_messageid       (idmef_heartbeat_t *ptr,
                                                             prelude_string_t **ret);
    idmef_analyzer_t *  idmef_heartbeat_get_next_analyzer   (idmef_heartbeat_t *heartbeat,
                                                             idmef_analyzer_t *analyzer_cur);
    void                idmef_heartbeat_set_analyzer        (idmef_heartbeat_t *ptr,
                                                             idmef_analyzer_t *object,
                                                             int pos);
    int                 idmef_heartbeat_new_analyzer        (idmef_heartbeat_t *ptr,
                                                             idmef_analyzer_t **ret,
                                                             int pos);
    idmef_time_t *      idmef_heartbeat_get_create_time     (idmef_heartbeat_t *ptr);
    void                idmef_heartbeat_set_create_time     (idmef_heartbeat_t *ptr,
                                                             idmef_time_t *create_time);
    int                 idmef_heartbeat_new_create_time     (idmef_heartbeat_t *ptr,
                                                             idmef_time_t **ret);
    idmef_time_t *      idmef_heartbeat_get_analyzer_time   (idmef_heartbeat_t *ptr);
    void                idmef_heartbeat_set_analyzer_time   (idmef_heartbeat_t *ptr,
                                                             idmef_time_t *analyzer_time);
    int                 idmef_heartbeat_new_analyzer_time   (idmef_heartbeat_t *ptr,
                                                             idmef_time_t **ret);
    void                idmef_heartbeat_unset_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr);
    uint32_t *          idmef_heartbeat_get_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr);
    void                idmef_heartbeat_set_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr,
                                                             uint32_t heartbeat_interval);
    int                 idmef_heartbeat_new_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr,
                                                             uint32_t **ret);
    idmef_additional_data_t * idmef_heartbeat_get_next_additional_data
                                                            (idmef_heartbeat_t *heartbeat,
                                                             idmef_additional_data_t *additional_data_cur);
    void                idmef_heartbeat_set_additional_data (idmef_heartbeat_t *ptr,
                                                             idmef_additional_data_t *object,
                                                             int pos);
    int                 idmef_heartbeat_new_additional_data (idmef_heartbeat_t *ptr,
                                                             idmef_additional_data_t **ret,
                                                             int pos);
    enum                idmef_message_type_t;
    idmef_message_type_t  idmef_message_type_to_numeric     (const char *name);
    const char *        idmef_message_type_to_string        (idmef_message_type_t val);
    typedef             idmef_message_t;
    int                 idmef_message_new                   (idmef_message_t **ret);
    int                 idmef_message_copy                  (const idmef_message_t *src,
                                                             idmef_message_t *dst);
    int                 idmef_message_clone                 (idmef_message_t *src,
                                                             idmef_message_t **dst);
    idmef_message_t *   idmef_message_ref                   (idmef_message_t *message);
    void                idmef_message_destroy               (idmef_message_t *ptr);
    prelude_string_t *  idmef_message_get_version           (idmef_message_t *ptr);
    void                idmef_message_set_version           (idmef_message_t *ptr,
                                                             prelude_string_t *version);
    int                 idmef_message_new_version           (idmef_message_t *ptr,
                                                             prelude_string_t **ret);
    idmef_message_type_t  idmef_message_get_type            (idmef_message_t *ptr);
    idmef_alert_t *     idmef_message_get_alert             (idmef_message_t *ptr);
    void                idmef_message_set_alert             (idmef_message_t *ptr,
                                                             idmef_alert_t *alert);
    int                 idmef_message_new_alert             (idmef_message_t *ptr,
                                                             idmef_alert_t **ret);
    idmef_heartbeat_t * idmef_message_get_heartbeat         (idmef_message_t *ptr);
    void                idmef_message_set_heartbeat         (idmef_message_t *ptr,
                                                             idmef_heartbeat_t *heartbeat);
    int                 idmef_message_new_heartbeat         (idmef_message_t *ptr,
                                                             idmef_heartbeat_t **ret);
    void                idmef_message_set_pmsg              (idmef_message_t *message,
                                                             prelude_msg_t *msg);
    prelude_msg_t *     idmef_message_get_pmsg              (idmef_message_t *message);
    int                 idmef_action_compare                (const idmef_action_t *obj1,
                                                             const idmef_action_t *obj2);
    int                 idmef_additional_data_compare       (const idmef_additional_data_t *obj1,
                                                             const idmef_additional_data_t *obj2);
    int                 idmef_address_compare               (const idmef_address_t *obj1,
                                                             const idmef_address_t *obj2);
    int                 idmef_alert_compare                 (const idmef_alert_t *obj1,
                                                             const idmef_alert_t *obj2);
    int                 idmef_alertident_compare            (const idmef_alertident_t *obj1,
                                                             const idmef_alertident_t *obj2);
    int                 idmef_analyzer_compare              (const idmef_analyzer_t *obj1,
                                                             const idmef_analyzer_t *obj2);
    int                 idmef_assessment_compare            (const idmef_assessment_t *obj1,
                                                             const idmef_assessment_t *obj2);
    int                 idmef_checksum_compare              (const idmef_checksum_t *obj1,
                                                             const idmef_checksum_t *obj2);
    int                 idmef_classification_compare        (const idmef_classification_t *obj1,
                                                             const idmef_classification_t *obj2);
    int                 idmef_confidence_compare            (const idmef_confidence_t *obj1,
                                                             const idmef_confidence_t *obj2);
    int                 idmef_correlation_alert_compare     (const idmef_correlation_alert_t *obj1,
                                                             const idmef_correlation_alert_t *obj2);
    int                 idmef_data_compare                  (const idmef_data_t *data1,
                                                             const idmef_data_t *data2);
    int                 idmef_file_access_compare           (const idmef_file_access_t *obj1,
                                                             const idmef_file_access_t *obj2);
    int                 idmef_file_compare                  (const idmef_file_t *obj1,
                                                             const idmef_file_t *obj2);
    int                 idmef_heartbeat_compare             (const idmef_heartbeat_t *obj1,
                                                             const idmef_heartbeat_t *obj2);
    int                 idmef_impact_compare                (const idmef_impact_t *obj1,
                                                             const idmef_impact_t *obj2);
    int                 idmef_inode_compare                 (const idmef_inode_t *obj1,
                                                             const idmef_inode_t *obj2);
    int                 idmef_linkage_compare               (const idmef_linkage_t *obj1,
                                                             const idmef_linkage_t *obj2);
    int                 idmef_message_compare               (const idmef_message_t *obj1,
                                                             const idmef_message_t *obj2);
    int                 idmef_node_compare                  (const idmef_node_t *obj1,
                                                             const idmef_node_t *obj2);
    int                 idmef_overflow_alert_compare        (const idmef_overflow_alert_t *obj1,
                                                             const idmef_overflow_alert_t *obj2);
    int                 idmef_process_compare               (const idmef_process_t *obj1,
                                                             const idmef_process_t *obj2);
    int                 idmef_reference_compare             (const idmef_reference_t *obj1,
                                                             const idmef_reference_t *obj2);
    int                 idmef_service_compare               (const idmef_service_t *obj1,
                                                             const idmef_service_t *obj2);
    int                 idmef_snmp_service_compare          (const idmef_snmp_service_t *obj1,
                                                             const idmef_snmp_service_t *obj2);
    int                 idmef_source_compare                (const idmef_source_t *obj1,
                                                             const idmef_source_t *obj2);
    int                 idmef_target_compare                (const idmef_target_t *obj1,
                                                             const idmef_target_t *obj2);
    int                 idmef_time_compare                  (const idmef_time_t *time1,
                                                             const idmef_time_t *time2);
    int                 idmef_tool_alert_compare            (const idmef_tool_alert_t *obj1,
                                                             const idmef_tool_alert_t *obj2);
    int                 idmef_user_compare                  (const idmef_user_t *obj1,
                                                             const idmef_user_t *obj2);
    int                 idmef_user_id_compare               (const idmef_user_id_t *obj1,
                                                             const idmef_user_id_t *obj2);
    int                 idmef_web_service_compare           (const idmef_web_service_t *obj1,
                                                             const idmef_web_service_t *obj2);
    #define             IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE
    #define             IDMEF_CLASS_ID_ADDITIONAL_DATA
    #define             IDMEF_CLASS_ID_REFERENCE_ORIGIN
    #define             IDMEF_CLASS_ID_REFERENCE
    #define             IDMEF_CLASS_ID_CLASSIFICATION
    #define             IDMEF_CLASS_ID_USER_ID_TYPE
    #define             IDMEF_CLASS_ID_USER_ID
    #define             IDMEF_CLASS_ID_USER_CATEGORY
    #define             IDMEF_CLASS_ID_USER
    #define             IDMEF_CLASS_ID_ADDRESS_CATEGORY
    #define             IDMEF_CLASS_ID_ADDRESS
    #define             IDMEF_CLASS_ID_PROCESS
    #define             IDMEF_CLASS_ID_WEB_SERVICE
    #define             IDMEF_CLASS_ID_SNMP_SERVICE
    #define             IDMEF_CLASS_ID_SERVICE_TYPE
    #define             IDMEF_CLASS_ID_SERVICE
    #define             IDMEF_CLASS_ID_NODE_CATEGORY
    #define             IDMEF_CLASS_ID_NODE
    #define             IDMEF_CLASS_ID_SOURCE_SPOOFED
    #define             IDMEF_CLASS_ID_SOURCE
    #define             IDMEF_CLASS_ID_FILE_ACCESS
    #define             IDMEF_CLASS_ID_INODE
    #define             IDMEF_CLASS_ID_CHECKSUM_ALGORITHM
    #define             IDMEF_CLASS_ID_CHECKSUM
    #define             IDMEF_CLASS_ID_FILE_CATEGORY
    #define             IDMEF_CLASS_ID_FILE_FSTYPE
    #define             IDMEF_CLASS_ID_FILE
    #define             IDMEF_CLASS_ID_LINKAGE_CATEGORY
    #define             IDMEF_CLASS_ID_LINKAGE
    #define             IDMEF_CLASS_ID_TARGET_DECOY
    #define             IDMEF_CLASS_ID_TARGET
    #define             IDMEF_CLASS_ID_ANALYZER
    #define             IDMEF_CLASS_ID_ALERTIDENT
    #define             IDMEF_CLASS_ID_IMPACT_SEVERITY
    #define             IDMEF_CLASS_ID_IMPACT_COMPLETION
    #define             IDMEF_CLASS_ID_IMPACT_TYPE
    #define             IDMEF_CLASS_ID_IMPACT
    #define             IDMEF_CLASS_ID_ACTION_CATEGORY
    #define             IDMEF_CLASS_ID_ACTION
    #define             IDMEF_CLASS_ID_CONFIDENCE_RATING
    #define             IDMEF_CLASS_ID_CONFIDENCE
    #define             IDMEF_CLASS_ID_ASSESSMENT
    #define             IDMEF_CLASS_ID_TOOL_ALERT
    #define             IDMEF_CLASS_ID_CORRELATION_ALERT
    #define             IDMEF_CLASS_ID_OVERFLOW_ALERT
    #define             IDMEF_CLASS_ID_ALERT_TYPE
    #define             IDMEF_CLASS_ID_ALERT
    #define             IDMEF_CLASS_ID_HEARTBEAT
    #define             IDMEF_CLASS_ID_MESSAGE_TYPE
    #define             IDMEF_CLASS_ID_MESSAGE

## Description

The IDMEF API is used by a sensor in order to generate events. IDMEF is an alert description format allowing almost any alert information to fit within an IDMEF alert, independantly of the type of analyzer used.

Here is real world example taken from the Snort Prelude sensors. The top level IDMEF object is always of type idmef_message_t. You should refer to the IDMEF draft, or to the Prelude API documentation in order to get a complete listing of theses objects, or a description of what information an object may carry.

    void snort_alert_prelude(Packet *p, char *msg, void *data, Event *event)
    {
            int ret;
            idmef_time_t *time;
            idmef_alert_t *alert;
            prelude_string_t *str;
            idmef_message_t *idmef;
            idmef_classification_t *class;
            prelude_client_t *client = data;
            ret = idmef_message_new(&idmef);
            if ( ret < 0 )
                    return;
            ret = idmef_message_new_alert(idmef, &alert);
            if ( ret < 0 )
                    goto err;
            ret = idmef_alert_new_classification(alert, &class);
            if ( ret < 0 )
                    goto err;
            ret = idmef_classification_new_text(class, &str);
            if ( ret < 0 )
                    goto err;
            prelude_string_set_ref(str, msg);
            ret = event_to_impact(event, alert);
            if ( ret < 0 )
                    goto err;
            ret = event_to_reference(event, class);
            if ( ret < 0 )
                    goto err;
            ret = event_to_source_target(p, alert);
            if ( ret < 0 )
                    goto err;
            ret = packet_to_data(p, event, alert);
            if ( ret < 0 )
                    goto err;
            ret = idmef_alert_new_detect_time(alert, &time);
            if ( ret < 0 )
                    goto err;
            idmef_time_set_from_timeval(time, &p->pkth->ts);
            ret = idmef_time_new_from_gettimeofday(&time);
            if ( ret < 0 )
                    goto err;
            idmef_alert_set_create_time(alert, time);
            idmef_alert_set_analyzer(alert, idmef_analyzer_ref(prelude_client_get_analyzer(client)), 0);
            prelude_client_send_idmef(client, idmef);
     err:
            idmef_message_destroy(idmef);
    	prelude_perror(ret, "Unable to create IDMEF alert");
    }

## Details

### IDMEF_LIST_APPEND

    #define IDMEF_LIST_APPEND  INT_MAX

### IDMEF_LIST_PREPEND

    #define IDMEF_LIST_PREPEND (INT_MAX - 1)

### idmef_message_get_data ()

    int                 idmef_message_get_data              (idmef_message_t *message,
                                                             const char *path,
                                                             unsigned char **data,
                                                             size_t *size);

`message` : |
`path` : |
`data` : |
`size` : |
Returns : |

### idmef_message_get_number ()

    int                 idmef_message_get_number            (idmef_message_t *message,
                                                             const char *path,
                                                             double *result);

Retrieve the number stored within `path` of `message` and store it in the user provided `result`.

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to retrieve the number from within `message`.
`result` : | Pointer where the result should be stored.
Returns : | A positive value in case `path` was successfully retrieved 0 if the path is empty, or a negative value if an error occured.

### idmef_message_get_string ()

    int                 idmef_message_get_string            (idmef_message_t *message,
                                                             const char *path,
                                                             char **result);

Retrieve the string stored within `path` of `message` and store it in the user provided `result`.

The caller is responssible for freeing `result`.

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to retrieve the string from within `message`.
`result` : | Pointer where the result should be stored.
Returns : | A positive value in case `path` was successfully retrieved 0 if the path is empty, or a negative value if an error occured.

### idmef_message_get_value ()

    int                 idmef_message_get_value             (idmef_message_t *message,
                                                             const char *path,
                                                             idmef_value_t **value);

Retrieve the value stored within `path` of `message` and store it in the user provided `value`.

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to retrieve the value from within `message`.
`value` : | Pointer where the result should be stored.
Returns : | A positive value in case `path` was successfully retrieved 0 if the path is empty, or a negative value if an error occured.

### idmef_message_set_data ()

    int                 idmef_message_set_data              (idmef_message_t *message,
                                                             const char *path,
                                                             unsigned char *data,
                                                             size_t size);

This function will set the `path` member within `message` to the provided `data` of size `size`.

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to be set within `message`.
`data` : | Pointer to data to associate `message`[`path`] with.
`size` : | Size of the data pointed to by `data`.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_set_number ()

    int                 idmef_message_set_number            (idmef_message_t *message,
                                                             const char *path,
                                                             double number);

This function will set the `path` member within `message` to the provided `value`, which will be converted to the `path` value type.

Example: idmef_message_set_number(message, "alert.assessment.confidence.confidence", 0.123456); idmef_message_set_number(message, "alert.source(0).service.port", 1024);

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to be set within `message`.
`number` : | Value to associate `message`[`path`] with.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_set_string ()

    int                 idmef_message_set_string            (idmef_message_t *message,
                                                             const char *path,
                                                             const char *value);

This function will set the `path` member within `message` to the provided `value`, which will be converted to the corresponding `path` value type.

Example: idmef_message_set_string(message, "alert.classification.text", "MyText"); idmef_message_set_string(message, "alert.source(0).service.port", "1024");

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to be set within `message`.
`value` : | Value to associate `message`[`path`] with.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_set_value ()

    int                 idmef_message_set_value             (idmef_message_t *message,
                                                             const char *path,
                                                             idmef_value_t *value);

This function will set the `path` member within `message` to the provided `value`.

`message` : | Pointer to an idmef_message_t object.
`path` : | Path to be set within `message`.
`value` : | Value to associate `message`[`path`] with.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_additional_data_type_t

    typedef enum {
            IDMEF_ADDITIONAL_DATA_TYPE_ERROR = -1,
            IDMEF_ADDITIONAL_DATA_TYPE_STRING = 0,
            IDMEF_ADDITIONAL_DATA_TYPE_BYTE = 1,
            IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER = 2,
            IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME = 3,
            IDMEF_ADDITIONAL_DATA_TYPE_INTEGER = 4,
            IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP = 5,
            IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST = 6,
            IDMEF_ADDITIONAL_DATA_TYPE_REAL = 7,
            IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN = 8,
            IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING = 9,
            IDMEF_ADDITIONAL_DATA_TYPE_XML = 10
    } idmef_additional_data_type_t;

### idmef_additional_data_type_to_numeric ()

    idmef_additional_data_type_t  idmef_additional_data_type_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_additional_data_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_additional_data_type_to_string ()

    const char *        idmef_additional_data_type_to_string
                                                            (idmef_additional_data_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_additional_data_type_t value.

`val` : | an enumeration value for idmef_additional_data_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_additional_data_t

    typedef struct idmef_additional_data idmef_additional_data_t;

### idmef_additional_data_new ()

    int                 idmef_additional_data_new           (idmef_additional_data_t **ret);

Create a new idmef_additional_data_t object.

`ret` : | Pointer where to store the created idmef_additional_data_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_additional_data_copy ()

    int                 idmef_additional_data_copy          (const idmef_additional_data_t *src,
                                                             idmef_additional_data_t *dst);

Copy a new idmef_additional_data_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_additional_data_clone ()

    int                 idmef_additional_data_clone         (idmef_additional_data_t *src,
                                                             idmef_additional_data_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_additional_data_ref ()

    idmef_additional_data_t * idmef_additional_data_ref     (idmef_additional_data_t *additional_data);

Increase `additional_data` reference count, so that it can be referenced multiple time.

`additional_data` : | pointer to a idmef_additional_data_t object.
Returns : | a pointer to `additional_data`.

### idmef_additional_data_destroy ()

    void                idmef_additional_data_destroy       (idmef_additional_data_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_additional_data_t object.

### idmef_additional_data_get_type ()

    idmef_additional_data_type_t  idmef_additional_data_get_type
                                                            (idmef_additional_data_t *ptr);

Get type children of the idmef_additional_data_t object.

`ptr` : | pointer to a idmef_additional_data_t object.
Returns : | a pointer to a idmef_additional_data_type_t object, or NULL if the children object is not set.

### idmef_additional_data_set_type ()

    void                idmef_additional_data_set_type      (idmef_additional_data_t *ptr,
                                                             idmef_additional_data_type_t type);

Set `type` object as a children of `ptr`. if `ptr` already contain an `type` object, then it is destroyed, and updated to point to the provided `type` object.

`ptr` : | pointer to a idmef_additional_data_t object.
`type` : | pointer to a idmef_additional_data_type_t object.

### idmef_additional_data_new_type ()

    int                 idmef_additional_data_new_type      (idmef_additional_data_t *ptr,
                                                             idmef_additional_data_type_t **ret);

Create a new type object, children of idmef_additional_data_t. If `ptr` already contain a idmef_additional_data_type_t object, then it is destroyed.

`ptr` : | pointer to a idmef_additional_data_t object.
`ret` : | pointer to an address where to store the created idmef_additional_data_type_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_additional_data_get_meaning ()

    prelude_string_t *  idmef_additional_data_get_meaning   (idmef_additional_data_t *ptr);

`ptr` : |
Returns : |

### idmef_additional_data_set_meaning ()

    void                idmef_additional_data_set_meaning   (idmef_additional_data_t *ptr,
                                                             prelude_string_t *meaning);

Set `meaning` object as a children of `ptr`. if `ptr` already contain an `meaning` object, then it is destroyed, and updated to point to the provided `meaning` object.

`ptr` : | pointer to a idmef_additional_data_t object.
`meaning` : | pointer to a prelude_string_t object.

### idmef_additional_data_new_meaning ()

    int                 idmef_additional_data_new_meaning   (idmef_additional_data_t *ptr,
                                                             prelude_string_t **ret);

Create a new meaning object, children of idmef_additional_data_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_additional_data_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_additional_data_get_data ()

    idmef_data_t *      idmef_additional_data_get_data      (idmef_additional_data_t *ptr);

`ptr` : |
Returns : |

### idmef_additional_data_set_data ()

    void                idmef_additional_data_set_data      (idmef_additional_data_t *ptr,
                                                             idmef_data_t *data);

Set `data` object as a children of `ptr`. if `ptr` already contain an `data` object, then it is destroyed, and updated to point to the provided `data` object.

`ptr` : | pointer to a idmef_additional_data_t object.
`data` : | pointer to a idmef_data_t object.

### idmef_additional_data_new_data ()

    int                 idmef_additional_data_new_data      (idmef_additional_data_t *ptr,
                                                             idmef_data_t **ret);

Create a new data object, children of idmef_additional_data_t. If `ptr` already contain a idmef_data_t object, then it is destroyed.

`ptr` : | pointer to a idmef_additional_data_t object.
`ret` : | pointer to an address where to store the created idmef_data_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_reference_origin_t

    typedef enum {
            IDMEF_REFERENCE_ORIGIN_ERROR = -1,
            IDMEF_REFERENCE_ORIGIN_UNKNOWN = 0,
            IDMEF_REFERENCE_ORIGIN_VENDOR_SPECIFIC = 1,
            IDMEF_REFERENCE_ORIGIN_USER_SPECIFIC = 2,
            IDMEF_REFERENCE_ORIGIN_BUGTRAQID = 3,
            IDMEF_REFERENCE_ORIGIN_CVE = 4,
            IDMEF_REFERENCE_ORIGIN_OSVDB = 5
    } idmef_reference_origin_t;

### idmef_reference_origin_to_numeric ()

    idmef_reference_origin_t  idmef_reference_origin_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_reference_origin_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_reference_origin_to_string ()

    const char *        idmef_reference_origin_to_string    (idmef_reference_origin_t val);

Return the IDMEF string equivalent of `val` provided idmef_reference_origin_t value.

`val` : | an enumeration value for idmef_reference_origin_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_reference_t

    typedef struct idmef_reference idmef_reference_t;

### idmef_reference_new ()

    int                 idmef_reference_new                 (idmef_reference_t **ret);

Create a new idmef_reference_t object.

`ret` : | Pointer where to store the created idmef_reference_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_reference_copy ()

    int                 idmef_reference_copy                (const idmef_reference_t *src,
                                                             idmef_reference_t *dst);

Copy a new idmef_reference_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_reference_clone ()

    int                 idmef_reference_clone               (idmef_reference_t *src,
                                                             idmef_reference_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_reference_ref ()

    idmef_reference_t * idmef_reference_ref                 (idmef_reference_t *reference);

Increase `reference` reference count, so that it can be referenced multiple time.

`reference` : | pointer to a idmef_reference_t object.
Returns : | a pointer to `reference`.

### idmef_reference_destroy ()

    void                idmef_reference_destroy             (idmef_reference_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_reference_t object.

### idmef_reference_get_origin ()

    idmef_reference_origin_t  idmef_reference_get_origin    (idmef_reference_t *ptr);

Get origin children of the idmef_reference_t object.

`ptr` : | pointer to a idmef_reference_t object.
Returns : | a pointer to a idmef_reference_origin_t object, or NULL if the children object is not set.

### idmef_reference_set_origin ()

    void                idmef_reference_set_origin          (idmef_reference_t *ptr,
                                                             idmef_reference_origin_t origin);

Set `origin` object as a children of `ptr`. if `ptr` already contain an `origin` object, then it is destroyed, and updated to point to the provided `origin` object.

`ptr` : | pointer to a idmef_reference_t object.
`origin` : | pointer to a idmef_reference_origin_t object.

### idmef_reference_new_origin ()

    int                 idmef_reference_new_origin          (idmef_reference_t *ptr,
                                                             idmef_reference_origin_t **ret);

Create a new origin object, children of idmef_reference_t. If `ptr` already contain a idmef_reference_origin_t object, then it is destroyed.

`ptr` : | pointer to a idmef_reference_t object.
`ret` : | pointer to an address where to store the created idmef_reference_origin_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_reference_get_name ()

    prelude_string_t *  idmef_reference_get_name            (idmef_reference_t *ptr);

`ptr` : |
Returns : |

### idmef_reference_set_name ()

    void                idmef_reference_set_name            (idmef_reference_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_reference_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_reference_new_name ()

    int                 idmef_reference_new_name            (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_reference_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_reference_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_reference_get_url ()

    prelude_string_t *  idmef_reference_get_url             (idmef_reference_t *ptr);

`ptr` : |
Returns : |

### idmef_reference_set_url ()

    void                idmef_reference_set_url             (idmef_reference_t *ptr,
                                                             prelude_string_t *url);

Set `url` object as a children of `ptr`. if `ptr` already contain an `url` object, then it is destroyed, and updated to point to the provided `url` object.

`ptr` : | pointer to a idmef_reference_t object.
`url` : | pointer to a prelude_string_t object.

### idmef_reference_new_url ()

    int                 idmef_reference_new_url             (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);

Create a new url object, children of idmef_reference_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_reference_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_reference_get_meaning ()

    prelude_string_t *  idmef_reference_get_meaning         (idmef_reference_t *ptr);

`ptr` : |
Returns : |

### idmef_reference_set_meaning ()

    void                idmef_reference_set_meaning         (idmef_reference_t *ptr,
                                                             prelude_string_t *meaning);

Set `meaning` object as a children of `ptr`. if `ptr` already contain an `meaning` object, then it is destroyed, and updated to point to the provided `meaning` object.

`ptr` : | pointer to a idmef_reference_t object.
`meaning` : | pointer to a prelude_string_t object.

### idmef_reference_new_meaning ()

    int                 idmef_reference_new_meaning         (idmef_reference_t *ptr,
                                                             prelude_string_t **ret);

Create a new meaning object, children of idmef_reference_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_reference_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_classification_t

    typedef struct idmef_classification idmef_classification_t;

### idmef_classification_new ()

    int                 idmef_classification_new            (idmef_classification_t **ret);

Create a new idmef_classification_t object.

`ret` : | Pointer where to store the created idmef_classification_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_classification_copy ()

    int                 idmef_classification_copy           (const idmef_classification_t *src,
                                                             idmef_classification_t *dst);

Copy a new idmef_classification_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_classification_clone ()

    int                 idmef_classification_clone          (idmef_classification_t *src,
                                                             idmef_classification_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_classification_ref ()

    idmef_classification_t * idmef_classification_ref       (idmef_classification_t *classification);

Increase `classification` reference count, so that it can be referenced multiple time.

`classification` : | pointer to a idmef_classification_t object.
Returns : | a pointer to `classification`.

### idmef_classification_destroy ()

    void                idmef_classification_destroy        (idmef_classification_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_classification_t object.

### idmef_classification_get_ident ()

    prelude_string_t *  idmef_classification_get_ident      (idmef_classification_t *ptr);

`ptr` : |
Returns : |

### idmef_classification_set_ident ()

    void                idmef_classification_set_ident      (idmef_classification_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_classification_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_classification_new_ident ()

    int                 idmef_classification_new_ident      (idmef_classification_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_classification_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_classification_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_classification_get_text ()

    prelude_string_t *  idmef_classification_get_text       (idmef_classification_t *ptr);

`ptr` : |
Returns : |

### idmef_classification_set_text ()

    void                idmef_classification_set_text       (idmef_classification_t *ptr,
                                                             prelude_string_t *text);

Set `text` object as a children of `ptr`. if `ptr` already contain an `text` object, then it is destroyed, and updated to point to the provided `text` object.

`ptr` : | pointer to a idmef_classification_t object.
`text` : | pointer to a prelude_string_t object.

### idmef_classification_new_text ()

    int                 idmef_classification_new_text       (idmef_classification_t *ptr,
                                                             prelude_string_t **ret);

Create a new text object, children of idmef_classification_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_classification_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_classification_get_next_reference ()

    idmef_reference_t * idmef_classification_get_next_reference
                                                            (idmef_classification_t *classification,
                                                             idmef_reference_t *reference_cur);

Get the next idmef_reference_t object listed in `ptr`. When iterating over the idmef_reference_t object listed in `ptr`, `object` should be set to the latest returned idmef_reference_t object.

`classification` : | pointer to a idmef_classification_t object.
`reference_cur` : | pointer to a idmef_reference_t object.
Returns : | the next idmef_reference_t in the list.

### idmef_classification_set_reference ()

    void                idmef_classification_set_reference  (idmef_classification_t *ptr,
                                                             idmef_reference_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_reference_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_classification_t object.
`object` : | pointer to a idmef_reference_t object.
`pos` : | Position in the list.

### idmef_classification_new_reference ()

    int                 idmef_classification_new_reference  (idmef_classification_t *ptr,
                                                             idmef_reference_t **ret,
                                                             int pos);

Create a new idmef_reference_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_reference_t object. The created idmef_reference_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_classification_t object.
`ret` : | pointer to an address where to store the created idmef_reference_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_user_id_type_t

    typedef enum {
            IDMEF_USER_ID_TYPE_ORIGINAL_ERROR = -1,
            IDMEF_USER_ID_TYPE_ORIGINAL_USER = 0,
            IDMEF_USER_ID_TYPE_CURRENT_USER = 1,
            IDMEF_USER_ID_TYPE_TARGET_USER = 2,
            IDMEF_USER_ID_TYPE_USER_PRIVS = 3,
            IDMEF_USER_ID_TYPE_CURRENT_GROUP = 4,
            IDMEF_USER_ID_TYPE_GROUP_PRIVS = 5,
            IDMEF_USER_ID_TYPE_OTHER_PRIVS = 6
    } idmef_user_id_type_t;

### idmef_user_id_type_to_numeric ()

    idmef_user_id_type_t  idmef_user_id_type_to_numeric     (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_user_id_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_user_id_type_to_string ()

    const char *        idmef_user_id_type_to_string        (idmef_user_id_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_user_id_type_t value.

`val` : | an enumeration value for idmef_user_id_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_user_id_t

    typedef struct idmef_user_id idmef_user_id_t;

### idmef_user_id_new ()

    int                 idmef_user_id_new                   (idmef_user_id_t **ret);

Create a new idmef_user_id_t object.

`ret` : | Pointer where to store the created idmef_user_id_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_id_copy ()

    int                 idmef_user_id_copy                  (const idmef_user_id_t *src,
                                                             idmef_user_id_t *dst);

Copy a new idmef_user_id_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_id_clone ()

    int                 idmef_user_id_clone                 (idmef_user_id_t *src,
                                                             idmef_user_id_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_id_ref ()

    idmef_user_id_t *   idmef_user_id_ref                   (idmef_user_id_t *user_id);

Increase `user_id` reference count, so that it can be referenced multiple time.

`user_id` : | pointer to a idmef_user_id_t object.
Returns : | a pointer to `user_id`.

### idmef_user_id_destroy ()

    void                idmef_user_id_destroy               (idmef_user_id_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_user_id_t object.

### idmef_user_id_get_ident ()

    prelude_string_t *  idmef_user_id_get_ident             (idmef_user_id_t *ptr);

`ptr` : |
Returns : |

### idmef_user_id_set_ident ()

    void                idmef_user_id_set_ident             (idmef_user_id_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_user_id_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_user_id_new_ident ()

    int                 idmef_user_id_new_ident             (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_user_id_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_id_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_id_get_type ()

    idmef_user_id_type_t  idmef_user_id_get_type            (idmef_user_id_t *ptr);

Get type children of the idmef_user_id_t object.

`ptr` : | pointer to a idmef_user_id_t object.
Returns : | a pointer to a idmef_user_id_type_t object, or NULL if the children object is not set.

### idmef_user_id_set_type ()

    void                idmef_user_id_set_type              (idmef_user_id_t *ptr,
                                                             idmef_user_id_type_t type);

Set `type` object as a children of `ptr`. if `ptr` already contain an `type` object, then it is destroyed, and updated to point to the provided `type` object.

`ptr` : | pointer to a idmef_user_id_t object.
`type` : | pointer to a idmef_user_id_type_t object.

### idmef_user_id_new_type ()

    int                 idmef_user_id_new_type              (idmef_user_id_t *ptr,
                                                             idmef_user_id_type_t **ret);

Create a new type object, children of idmef_user_id_t. If `ptr` already contain a idmef_user_id_type_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_id_t object.
`ret` : | pointer to an address where to store the created idmef_user_id_type_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_id_get_tty ()

    prelude_string_t *  idmef_user_id_get_tty               (idmef_user_id_t *ptr);

`ptr` : |
Returns : |

### idmef_user_id_set_tty ()

    void                idmef_user_id_set_tty               (idmef_user_id_t *ptr,
                                                             prelude_string_t *tty);

Set `tty` object as a children of `ptr`. if `ptr` already contain an `tty` object, then it is destroyed, and updated to point to the provided `tty` object.

`ptr` : | pointer to a idmef_user_id_t object.
`tty` : | pointer to a prelude_string_t object.

### idmef_user_id_new_tty ()

    int                 idmef_user_id_new_tty               (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);

Create a new tty object, children of idmef_user_id_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_id_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_id_get_name ()

    prelude_string_t *  idmef_user_id_get_name              (idmef_user_id_t *ptr);

`ptr` : |
Returns : |

### idmef_user_id_set_name ()

    void                idmef_user_id_set_name              (idmef_user_id_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_user_id_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_user_id_new_name ()

    int                 idmef_user_id_new_name              (idmef_user_id_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_user_id_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_id_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_id_unset_number ()

    void                idmef_user_id_unset_number          (idmef_user_id_t *ptr);

`ptr` : |

### idmef_user_id_get_number ()

    uint32_t *          idmef_user_id_get_number            (idmef_user_id_t *ptr);

`ptr` : |
Returns : |

### idmef_user_id_set_number ()

    void                idmef_user_id_set_number            (idmef_user_id_t *ptr,
                                                             uint32_t number);

Set `number` object as a children of `ptr`. if `ptr` already contain an `number` object, then it is destroyed, and updated to point to the provided `number` object.

`ptr` : | pointer to a idmef_user_id_t object.
`number` : | pointer to a uint32_t object.

### idmef_user_id_new_number ()

    int                 idmef_user_id_new_number            (idmef_user_id_t *ptr,
                                                             uint32_t **ret);

Create a new number object, children of idmef_user_id_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_id_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_user_category_t

    typedef enum {
            IDMEF_USER_CATEGORY_ERROR = -1,
            IDMEF_USER_CATEGORY_UNKNOWN = 0,
            IDMEF_USER_CATEGORY_APPLICATION = 1,
            IDMEF_USER_CATEGORY_OS_DEVICE = 2
    } idmef_user_category_t;

### idmef_user_category_to_numeric ()

    idmef_user_category_t  idmef_user_category_to_numeric   (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_user_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_user_category_to_string ()

    const char *        idmef_user_category_to_string       (idmef_user_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_user_category_t value.

`val` : | an enumeration value for idmef_user_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_user_t

    typedef struct idmef_user idmef_user_t;

### idmef_user_new ()

    int                 idmef_user_new                      (idmef_user_t **ret);

Create a new idmef_user_t object.

`ret` : | Pointer where to store the created idmef_user_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_copy ()

    int                 idmef_user_copy                     (const idmef_user_t *src,
                                                             idmef_user_t *dst);

Copy a new idmef_user_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_clone ()

    int                 idmef_user_clone                    (idmef_user_t *src,
                                                             idmef_user_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_user_ref ()

    idmef_user_t *      idmef_user_ref                      (idmef_user_t *user);

Increase `user` reference count, so that it can be referenced multiple time.

`user` : | pointer to a idmef_user_t object.
Returns : | a pointer to `user`.

### idmef_user_destroy ()

    void                idmef_user_destroy                  (idmef_user_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_user_t object.

### idmef_user_get_ident ()

    prelude_string_t *  idmef_user_get_ident                (idmef_user_t *ptr);

`ptr` : |
Returns : |

### idmef_user_set_ident ()

    void                idmef_user_set_ident                (idmef_user_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_user_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_user_new_ident ()

    int                 idmef_user_new_ident                (idmef_user_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_user_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_get_category ()

    idmef_user_category_t  idmef_user_get_category          (idmef_user_t *ptr);

Get category children of the idmef_user_t object.

`ptr` : | pointer to a idmef_user_t object.
Returns : | a pointer to a idmef_user_category_t object, or NULL if the children object is not set.

### idmef_user_set_category ()

    void                idmef_user_set_category             (idmef_user_t *ptr,
                                                             idmef_user_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_user_t object.
`category` : | pointer to a idmef_user_category_t object.

### idmef_user_new_category ()

    int                 idmef_user_new_category             (idmef_user_t *ptr,
                                                             idmef_user_category_t **ret);

Create a new category object, children of idmef_user_t. If `ptr` already contain a idmef_user_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_user_t object.
`ret` : | pointer to an address where to store the created idmef_user_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_user_get_next_user_id ()

    idmef_user_id_t *   idmef_user_get_next_user_id         (idmef_user_t *user,
                                                             idmef_user_id_t *user_id_cur);

Get the next idmef_user_id_t object listed in `ptr`. When iterating over the idmef_user_id_t object listed in `ptr`, `object` should be set to the latest returned idmef_user_id_t object.

`user` : | pointer to a idmef_user_t object.
`user_id_cur` : | pointer to a idmef_user_id_t object.
Returns : | the next idmef_user_id_t in the list.

### idmef_user_set_user_id ()

    void                idmef_user_set_user_id              (idmef_user_t *ptr,
                                                             idmef_user_id_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_user_id_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_user_t object.
`object` : | pointer to a idmef_user_id_t object.
`pos` : | Position in the list.

### idmef_user_new_user_id ()

    int                 idmef_user_new_user_id              (idmef_user_t *ptr,
                                                             idmef_user_id_t **ret,
                                                             int pos);

Create a new idmef_user_id_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_user_id_t object. The created idmef_user_id_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_user_t object.
`ret` : | pointer to an address where to store the created idmef_user_id_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_address_category_t

    typedef enum {
            IDMEF_ADDRESS_CATEGORY_ERROR = -1,
            IDMEF_ADDRESS_CATEGORY_UNKNOWN = 0,
            IDMEF_ADDRESS_CATEGORY_ATM = 1,
            IDMEF_ADDRESS_CATEGORY_E_MAIL = 2,
            IDMEF_ADDRESS_CATEGORY_LOTUS_NOTES = 3,
            IDMEF_ADDRESS_CATEGORY_MAC = 4,
            IDMEF_ADDRESS_CATEGORY_SNA = 5,
            IDMEF_ADDRESS_CATEGORY_VM = 6,
            IDMEF_ADDRESS_CATEGORY_IPV4_ADDR = 7,
            IDMEF_ADDRESS_CATEGORY_IPV4_ADDR_HEX = 8,
            IDMEF_ADDRESS_CATEGORY_IPV4_NET = 9,
            IDMEF_ADDRESS_CATEGORY_IPV4_NET_MASK = 10,
            IDMEF_ADDRESS_CATEGORY_IPV6_ADDR = 11,
            IDMEF_ADDRESS_CATEGORY_IPV6_ADDR_HEX = 12,
            IDMEF_ADDRESS_CATEGORY_IPV6_NET = 13,
            IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK = 14
    } idmef_address_category_t;

### idmef_address_category_to_numeric ()

    idmef_address_category_t  idmef_address_category_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_address_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_address_category_to_string ()

    const char *        idmef_address_category_to_string    (idmef_address_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_address_category_t value.

`val` : | an enumeration value for idmef_address_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_address_t

    typedef struct idmef_address idmef_address_t;

### idmef_address_new ()

    int                 idmef_address_new                   (idmef_address_t **ret);

Create a new idmef_address_t object.

`ret` : | Pointer where to store the created idmef_address_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_address_copy ()

    int                 idmef_address_copy                  (const idmef_address_t *src,
                                                             idmef_address_t *dst);

Copy a new idmef_address_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_address_clone ()

    int                 idmef_address_clone                 (idmef_address_t *src,
                                                             idmef_address_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_address_ref ()

    idmef_address_t *   idmef_address_ref                   (idmef_address_t *address);

Increase `address` reference count, so that it can be referenced multiple time.

`address` : | pointer to a idmef_address_t object.
Returns : | a pointer to `address`.

### idmef_address_destroy ()

    void                idmef_address_destroy               (idmef_address_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_address_t object.

### idmef_address_get_ident ()

    prelude_string_t *  idmef_address_get_ident             (idmef_address_t *ptr);

`ptr` : |
Returns : |

### idmef_address_set_ident ()

    void                idmef_address_set_ident             (idmef_address_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_address_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_address_new_ident ()

    int                 idmef_address_new_ident             (idmef_address_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_address_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_address_get_category ()

    idmef_address_category_t  idmef_address_get_category    (idmef_address_t *ptr);

Get category children of the idmef_address_t object.

`ptr` : | pointer to a idmef_address_t object.
Returns : | a pointer to a idmef_address_category_t object, or NULL if the children object is not set.

### idmef_address_set_category ()

    void                idmef_address_set_category          (idmef_address_t *ptr,
                                                             idmef_address_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_address_t object.
`category` : | pointer to a idmef_address_category_t object.

### idmef_address_new_category ()

    int                 idmef_address_new_category          (idmef_address_t *ptr,
                                                             idmef_address_category_t **ret);

Create a new category object, children of idmef_address_t. If `ptr` already contain a idmef_address_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created idmef_address_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_address_get_vlan_name ()

    prelude_string_t *  idmef_address_get_vlan_name         (idmef_address_t *ptr);

`ptr` : |
Returns : |

### idmef_address_set_vlan_name ()

    void                idmef_address_set_vlan_name         (idmef_address_t *ptr,
                                                             prelude_string_t *vlan_name);

Set `vlan_name` object as a children of `ptr`. if `ptr` already contain an `vlan_name` object, then it is destroyed, and updated to point to the provided `vlan_name` object.

`ptr` : | pointer to a idmef_address_t object.
`vlan_name` : | pointer to a prelude_string_t object.

### idmef_address_new_vlan_name ()

    int                 idmef_address_new_vlan_name         (idmef_address_t *ptr,
                                                             prelude_string_t **ret);

Create a new vlan_name object, children of idmef_address_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_address_unset_vlan_num ()

    void                idmef_address_unset_vlan_num        (idmef_address_t *ptr);

`ptr` : |

### idmef_address_get_vlan_num ()

    int32_t *           idmef_address_get_vlan_num          (idmef_address_t *ptr);

`ptr` : |
Returns : |

### idmef_address_set_vlan_num ()

    void                idmef_address_set_vlan_num          (idmef_address_t *ptr,
                                                             int32_t vlan_num);

Set `vlan_num` object as a children of `ptr`. if `ptr` already contain an `vlan_num` object, then it is destroyed, and updated to point to the provided `vlan_num` object.

`ptr` : | pointer to a idmef_address_t object.
`vlan_num` : | pointer to a int32_t object.

### idmef_address_new_vlan_num ()

    int                 idmef_address_new_vlan_num          (idmef_address_t *ptr,
                                                             int32_t **ret);

Create a new vlan_num object, children of idmef_address_t. If `ptr` already contain a int32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created int32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_address_get_address ()

    prelude_string_t *  idmef_address_get_address           (idmef_address_t *ptr);

`ptr` : |
Returns : |

### idmef_address_set_address ()

    void                idmef_address_set_address           (idmef_address_t *ptr,
                                                             prelude_string_t *address);

Set `address` object as a children of `ptr`. if `ptr` already contain an `address` object, then it is destroyed, and updated to point to the provided `address` object.

`ptr` : | pointer to a idmef_address_t object.
`address` : | pointer to a prelude_string_t object.

### idmef_address_new_address ()

    int                 idmef_address_new_address           (idmef_address_t *ptr,
                                                             prelude_string_t **ret);

Create a new address object, children of idmef_address_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_address_get_netmask ()

    prelude_string_t *  idmef_address_get_netmask           (idmef_address_t *ptr);

`ptr` : |
Returns : |

### idmef_address_set_netmask ()

    void                idmef_address_set_netmask           (idmef_address_t *ptr,
                                                             prelude_string_t *netmask);

Set `netmask` object as a children of `ptr`. if `ptr` already contain an `netmask` object, then it is destroyed, and updated to point to the provided `netmask` object.

`ptr` : | pointer to a idmef_address_t object.
`netmask` : | pointer to a prelude_string_t object.

### idmef_address_new_netmask ()

    int                 idmef_address_new_netmask           (idmef_address_t *ptr,
                                                             prelude_string_t **ret);

Create a new netmask object, children of idmef_address_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_address_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_t

    typedef struct idmef_process idmef_process_t;

### idmef_process_new ()

    int                 idmef_process_new                   (idmef_process_t **ret);

Create a new idmef_process_t object.

`ret` : | Pointer where to store the created idmef_process_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_process_copy ()

    int                 idmef_process_copy                  (const idmef_process_t *src,
                                                             idmef_process_t *dst);

Copy a new idmef_process_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_process_clone ()

    int                 idmef_process_clone                 (idmef_process_t *src,
                                                             idmef_process_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_process_ref ()

    idmef_process_t *   idmef_process_ref                   (idmef_process_t *process);

Increase `process` reference count, so that it can be referenced multiple time.

`process` : | pointer to a idmef_process_t object.
Returns : | a pointer to `process`.

### idmef_process_destroy ()

    void                idmef_process_destroy               (idmef_process_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_process_t object.

### idmef_process_get_ident ()

    prelude_string_t *  idmef_process_get_ident             (idmef_process_t *ptr);

`ptr` : |
Returns : |

### idmef_process_set_ident ()

    void                idmef_process_set_ident             (idmef_process_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_process_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_process_new_ident ()

    int                 idmef_process_new_ident             (idmef_process_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_process_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_get_name ()

    prelude_string_t *  idmef_process_get_name              (idmef_process_t *ptr);

`ptr` : |
Returns : |

### idmef_process_set_name ()

    void                idmef_process_set_name              (idmef_process_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_process_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_process_new_name ()

    int                 idmef_process_new_name              (idmef_process_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_process_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_unset_pid ()

    void                idmef_process_unset_pid             (idmef_process_t *ptr);

`ptr` : |

### idmef_process_get_pid ()

    uint32_t *          idmef_process_get_pid               (idmef_process_t *ptr);

`ptr` : |
Returns : |

### idmef_process_set_pid ()

    void                idmef_process_set_pid               (idmef_process_t *ptr,
                                                             uint32_t pid);

Set `pid` object as a children of `ptr`. if `ptr` already contain an `pid` object, then it is destroyed, and updated to point to the provided `pid` object.

`ptr` : | pointer to a idmef_process_t object.
`pid` : | pointer to a uint32_t object.

### idmef_process_new_pid ()

    int                 idmef_process_new_pid               (idmef_process_t *ptr,
                                                             uint32_t **ret);

Create a new pid object, children of idmef_process_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_get_path ()

    prelude_string_t *  idmef_process_get_path              (idmef_process_t *ptr);

`ptr` : |
Returns : |

### idmef_process_set_path ()

    void                idmef_process_set_path              (idmef_process_t *ptr,
                                                             prelude_string_t *path);

Set `path` object as a children of `ptr`. if `ptr` already contain an `path` object, then it is destroyed, and updated to point to the provided `path` object.

`ptr` : | pointer to a idmef_process_t object.
`path` : | pointer to a prelude_string_t object.

### idmef_process_new_path ()

    int                 idmef_process_new_path              (idmef_process_t *ptr,
                                                             prelude_string_t **ret);

Create a new path object, children of idmef_process_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_get_next_arg ()

    prelude_string_t *  idmef_process_get_next_arg          (idmef_process_t *process,
                                                             prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in `ptr`. When iterating over the prelude_string_t object listed in `ptr`, `object` should be set to the latest returned prelude_string_t object.

`process` : | pointer to a idmef_process_t object.
`prelude_string_cur` : | pointer to a prelude_string_t object.
Returns : | the next prelude_string_t in the list.

### idmef_process_set_arg ()

    void                idmef_process_set_arg               (idmef_process_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of prelude_string_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_process_t object.
`object` : | pointer to a prelude_string_t object.
`pos` : | Position in the list.

### idmef_process_new_arg ()

    int                 idmef_process_new_arg               (idmef_process_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);

Create a new prelude_string_t children of `ptr`, and add it to position `pos` of `ptr` list of prelude_string_t object. The created prelude_string_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_process_get_next_env ()

    prelude_string_t *  idmef_process_get_next_env          (idmef_process_t *process,
                                                             prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in `ptr`. When iterating over the prelude_string_t object listed in `ptr`, `object` should be set to the latest returned prelude_string_t object.

`process` : | pointer to a idmef_process_t object.
`prelude_string_cur` : | pointer to a prelude_string_t object.
Returns : | the next prelude_string_t in the list.

### idmef_process_set_env ()

    void                idmef_process_set_env               (idmef_process_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of prelude_string_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_process_t object.
`object` : | pointer to a prelude_string_t object.
`pos` : | Position in the list.

### idmef_process_new_env ()

    int                 idmef_process_new_env               (idmef_process_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);

Create a new prelude_string_t children of `ptr`, and add it to position `pos` of `ptr` list of prelude_string_t object. The created prelude_string_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_process_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_web_service_t

    typedef struct idmef_web_service idmef_web_service_t;

### idmef_web_service_new ()

    int                 idmef_web_service_new               (idmef_web_service_t **ret);

Create a new idmef_web_service_t object.

`ret` : | Pointer where to store the created idmef_web_service_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_web_service_copy ()

    int                 idmef_web_service_copy              (const idmef_web_service_t *src,
                                                             idmef_web_service_t *dst);

Copy a new idmef_web_service_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_web_service_clone ()

    int                 idmef_web_service_clone             (idmef_web_service_t *src,
                                                             idmef_web_service_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_web_service_ref ()

    idmef_web_service_t * idmef_web_service_ref             (idmef_web_service_t *web_service);

Increase `web_service` reference count, so that it can be referenced multiple time.

`web_service` : | pointer to a idmef_web_service_t object.
Returns : | a pointer to `web_service`.

### idmef_web_service_destroy ()

    void                idmef_web_service_destroy           (idmef_web_service_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_web_service_t object.

### idmef_web_service_get_url ()

    prelude_string_t *  idmef_web_service_get_url           (idmef_web_service_t *ptr);

`ptr` : |
Returns : |

### idmef_web_service_set_url ()

    void                idmef_web_service_set_url           (idmef_web_service_t *ptr,
                                                             prelude_string_t *url);

Set `url` object as a children of `ptr`. if `ptr` already contain an `url` object, then it is destroyed, and updated to point to the provided `url` object.

`ptr` : | pointer to a idmef_web_service_t object.
`url` : | pointer to a prelude_string_t object.

### idmef_web_service_new_url ()

    int                 idmef_web_service_new_url           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new url object, children of idmef_web_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_web_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_web_service_get_cgi ()

    prelude_string_t *  idmef_web_service_get_cgi           (idmef_web_service_t *ptr);

`ptr` : |
Returns : |

### idmef_web_service_set_cgi ()

    void                idmef_web_service_set_cgi           (idmef_web_service_t *ptr,
                                                             prelude_string_t *cgi);

Set `cgi` object as a children of `ptr`. if `ptr` already contain an `cgi` object, then it is destroyed, and updated to point to the provided `cgi` object.

`ptr` : | pointer to a idmef_web_service_t object.
`cgi` : | pointer to a prelude_string_t object.

### idmef_web_service_new_cgi ()

    int                 idmef_web_service_new_cgi           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new cgi object, children of idmef_web_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_web_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_web_service_get_http_method ()

    prelude_string_t *  idmef_web_service_get_http_method   (idmef_web_service_t *ptr);

`ptr` : |
Returns : |

### idmef_web_service_set_http_method ()

    void                idmef_web_service_set_http_method   (idmef_web_service_t *ptr,
                                                             prelude_string_t *http_method);

Set `http_method` object as a children of `ptr`. if `ptr` already contain an `http_method` object, then it is destroyed, and updated to point to the provided `http_method` object.

`ptr` : | pointer to a idmef_web_service_t object.
`http_method` : | pointer to a prelude_string_t object.

### idmef_web_service_new_http_method ()

    int                 idmef_web_service_new_http_method   (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new http_method object, children of idmef_web_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_web_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_web_service_get_next_arg ()

    prelude_string_t *  idmef_web_service_get_next_arg      (idmef_web_service_t *web_service,
                                                             prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in `ptr`. When iterating over the prelude_string_t object listed in `ptr`, `object` should be set to the latest returned prelude_string_t object.

`web_service` : | pointer to a idmef_web_service_t object.
`prelude_string_cur` : | pointer to a prelude_string_t object.
Returns : | the next prelude_string_t in the list.

### idmef_web_service_set_arg ()

    void                idmef_web_service_set_arg           (idmef_web_service_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of prelude_string_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_web_service_t object.
`object` : | pointer to a prelude_string_t object.
`pos` : | Position in the list.

### idmef_web_service_new_arg ()

    int                 idmef_web_service_new_arg           (idmef_web_service_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);

Create a new prelude_string_t children of `ptr`, and add it to position `pos` of `ptr` list of prelude_string_t object. The created prelude_string_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_web_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_t

    typedef struct idmef_snmp_service idmef_snmp_service_t;

### idmef_snmp_service_new ()

    int                 idmef_snmp_service_new              (idmef_snmp_service_t **ret);

Create a new idmef_snmp_service_t object.

`ret` : | Pointer where to store the created idmef_snmp_service_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_snmp_service_copy ()

    int                 idmef_snmp_service_copy             (const idmef_snmp_service_t *src,
                                                             idmef_snmp_service_t *dst);

Copy a new idmef_snmp_service_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_snmp_service_clone ()

    int                 idmef_snmp_service_clone            (idmef_snmp_service_t *src,
                                                             idmef_snmp_service_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_snmp_service_ref ()

    idmef_snmp_service_t * idmef_snmp_service_ref           (idmef_snmp_service_t *snmp_service);

Increase `snmp_service` reference count, so that it can be referenced multiple time.

`snmp_service` : | pointer to a idmef_snmp_service_t object.
Returns : | a pointer to `snmp_service`.

### idmef_snmp_service_destroy ()

    void                idmef_snmp_service_destroy          (idmef_snmp_service_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_snmp_service_t object.

### idmef_snmp_service_get_oid ()

    prelude_string_t *  idmef_snmp_service_get_oid          (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_oid ()

    void                idmef_snmp_service_set_oid          (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *oid);

Set `oid` object as a children of `ptr`. if `ptr` already contain an `oid` object, then it is destroyed, and updated to point to the provided `oid` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`oid` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_oid ()

    int                 idmef_snmp_service_new_oid          (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new oid object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_unset_message_processing_model ()

    void                idmef_snmp_service_unset_message_processing_model
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |

### idmef_snmp_service_get_message_processing_model ()

    uint32_t *          idmef_snmp_service_get_message_processing_model
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_message_processing_model ()

    void                idmef_snmp_service_set_message_processing_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t message_processing_model);

Set `message_processing_model` object as a children of `ptr`. if `ptr` already contain an `message_processing_model` object, then it is destroyed, and updated to point to the provided `message_processing_model` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`message_processing_model` : | pointer to a uint32_t object.

### idmef_snmp_service_new_message_processing_model ()

    int                 idmef_snmp_service_new_message_processing_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);

Create a new message_processing_model object, children of idmef_snmp_service_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_unset_security_model ()

    void                idmef_snmp_service_unset_security_model
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |

### idmef_snmp_service_get_security_model ()

    uint32_t *          idmef_snmp_service_get_security_model
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_security_model ()

    void                idmef_snmp_service_set_security_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t security_model);

Set `security_model` object as a children of `ptr`. if `ptr` already contain an `security_model` object, then it is destroyed, and updated to point to the provided `security_model` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`security_model` : | pointer to a uint32_t object.

### idmef_snmp_service_new_security_model ()

    int                 idmef_snmp_service_new_security_model
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);

Create a new security_model object, children of idmef_snmp_service_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_get_security_name ()

    prelude_string_t *  idmef_snmp_service_get_security_name
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_security_name ()

    void                idmef_snmp_service_set_security_name
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *security_name);

Set `security_name` object as a children of `ptr`. if `ptr` already contain an `security_name` object, then it is destroyed, and updated to point to the provided `security_name` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`security_name` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_security_name ()

    int                 idmef_snmp_service_new_security_name
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new security_name object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_unset_security_level ()

    void                idmef_snmp_service_unset_security_level
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |

### idmef_snmp_service_get_security_level ()

    uint32_t *          idmef_snmp_service_get_security_level
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_security_level ()

    void                idmef_snmp_service_set_security_level
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t security_level);

Set `security_level` object as a children of `ptr`. if `ptr` already contain an `security_level` object, then it is destroyed, and updated to point to the provided `security_level` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`security_level` : | pointer to a uint32_t object.

### idmef_snmp_service_new_security_level ()

    int                 idmef_snmp_service_new_security_level
                                                            (idmef_snmp_service_t *ptr,
                                                             uint32_t **ret);

Create a new security_level object, children of idmef_snmp_service_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_get_context_name ()

    prelude_string_t *  idmef_snmp_service_get_context_name (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_context_name ()

    void                idmef_snmp_service_set_context_name (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *context_name);

Set `context_name` object as a children of `ptr`. if `ptr` already contain an `context_name` object, then it is destroyed, and updated to point to the provided `context_name` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`context_name` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_context_name ()

    int                 idmef_snmp_service_new_context_name (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new context_name object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_get_context_engine_id ()

    prelude_string_t *  idmef_snmp_service_get_context_engine_id
                                                            (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_context_engine_id ()

    void                idmef_snmp_service_set_context_engine_id
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *context_engine_id);

Set `context_engine_id` object as a children of `ptr`. if `ptr` already contain an `context_engine_id` object, then it is destroyed, and updated to point to the provided `context_engine_id` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`context_engine_id` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_context_engine_id ()

    int                 idmef_snmp_service_new_context_engine_id
                                                            (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new context_engine_id object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_get_command ()

    prelude_string_t *  idmef_snmp_service_get_command      (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_command ()

    void                idmef_snmp_service_set_command      (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *command);

Set `command` object as a children of `ptr`. if `ptr` already contain an `command` object, then it is destroyed, and updated to point to the provided `command` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`command` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_command ()

    int                 idmef_snmp_service_new_command      (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new command object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_snmp_service_get_community ()

    prelude_string_t *  idmef_snmp_service_get_community    (idmef_snmp_service_t *ptr);

`ptr` : |
Returns : |

### idmef_snmp_service_set_community ()

    void                idmef_snmp_service_set_community    (idmef_snmp_service_t *ptr,
                                                             prelude_string_t *community);

Set `community` object as a children of `ptr`. if `ptr` already contain an `community` object, then it is destroyed, and updated to point to the provided `community` object.

`ptr` : | pointer to a idmef_snmp_service_t object.
`community` : | pointer to a prelude_string_t object.

### idmef_snmp_service_new_community ()

    int                 idmef_snmp_service_new_community    (idmef_snmp_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new community object, children of idmef_snmp_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_snmp_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_service_type_t

    typedef enum {
            IDMEF_SERVICE_TYPE_ERROR = -1,
            IDMEF_SERVICE_TYPE_DEFAULT = 0,
            IDMEF_SERVICE_TYPE_WEB = 1,
            IDMEF_SERVICE_TYPE_SNMP = 2
    } idmef_service_type_t;

### idmef_service_type_to_numeric ()

    idmef_service_type_t  idmef_service_type_to_numeric     (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_service_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_service_type_to_string ()

    const char *        idmef_service_type_to_string        (idmef_service_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_service_type_t value.

`val` : | an enumeration value for idmef_service_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_service_t

    typedef struct idmef_service idmef_service_t;

### idmef_service_new ()

    int                 idmef_service_new                   (idmef_service_t **ret);

Create a new idmef_service_t object.

`ret` : | Pointer where to store the created idmef_service_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_service_copy ()

    int                 idmef_service_copy                  (const idmef_service_t *src,
                                                             idmef_service_t *dst);

Copy a new idmef_service_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_service_clone ()

    int                 idmef_service_clone                 (idmef_service_t *src,
                                                             idmef_service_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_service_ref ()

    idmef_service_t *   idmef_service_ref                   (idmef_service_t *service);

Increase `service` reference count, so that it can be referenced multiple time.

`service` : | pointer to a idmef_service_t object.
Returns : | a pointer to `service`.

### idmef_service_destroy ()

    void                idmef_service_destroy               (idmef_service_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_service_t object.

### idmef_service_get_ident ()

    prelude_string_t *  idmef_service_get_ident             (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_ident ()

    void                idmef_service_set_ident             (idmef_service_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_service_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_service_new_ident ()

    int                 idmef_service_new_ident             (idmef_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_unset_ip_version ()

    void                idmef_service_unset_ip_version      (idmef_service_t *ptr);

`ptr` : |

### idmef_service_get_ip_version ()

    uint8_t *           idmef_service_get_ip_version        (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_ip_version ()

    void                idmef_service_set_ip_version        (idmef_service_t *ptr,
                                                             uint8_t ip_version);

Set `ip_version` object as a children of `ptr`. if `ptr` already contain an `ip_version` object, then it is destroyed, and updated to point to the provided `ip_version` object.

`ptr` : | pointer to a idmef_service_t object.
`ip_version` : | pointer to a uint8_t object.

### idmef_service_new_ip_version ()

    int                 idmef_service_new_ip_version        (idmef_service_t *ptr,
                                                             uint8_t **ret);

Create a new ip_version object, children of idmef_service_t. If `ptr` already contain a uint8_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created uint8_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_unset_iana_protocol_number ()

    void                idmef_service_unset_iana_protocol_number
                                                            (idmef_service_t *ptr);

`ptr` : |

### idmef_service_get_iana_protocol_number ()

    uint8_t *           idmef_service_get_iana_protocol_number
                                                            (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_iana_protocol_number ()

    void                idmef_service_set_iana_protocol_number
                                                            (idmef_service_t *ptr,
                                                             uint8_t iana_protocol_number);

Set `iana_protocol_number` object as a children of `ptr`. if `ptr` already contain an `iana_protocol_number` object, then it is destroyed, and updated to point to the provided `iana_protocol_number` object.

`ptr` : | pointer to a idmef_service_t object.
`iana_protocol_number` : | pointer to a uint8_t object.

### idmef_service_new_iana_protocol_number ()

    int                 idmef_service_new_iana_protocol_number
                                                            (idmef_service_t *ptr,
                                                             uint8_t **ret);

Create a new iana_protocol_number object, children of idmef_service_t. If `ptr` already contain a uint8_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created uint8_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_iana_protocol_name ()

    prelude_string_t *  idmef_service_get_iana_protocol_name
                                                            (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_iana_protocol_name ()

    void                idmef_service_set_iana_protocol_name
                                                            (idmef_service_t *ptr,
                                                             prelude_string_t *iana_protocol_name);

Set `iana_protocol_name` object as a children of `ptr`. if `ptr` already contain an `iana_protocol_name` object, then it is destroyed, and updated to point to the provided `iana_protocol_name` object.

`ptr` : | pointer to a idmef_service_t object.
`iana_protocol_name` : | pointer to a prelude_string_t object.

### idmef_service_new_iana_protocol_name ()

    int                 idmef_service_new_iana_protocol_name
                                                            (idmef_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new iana_protocol_name object, children of idmef_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_name ()

    prelude_string_t *  idmef_service_get_name              (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_name ()

    void                idmef_service_set_name              (idmef_service_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_service_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_service_new_name ()

    int                 idmef_service_new_name              (idmef_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_unset_port ()

    void                idmef_service_unset_port            (idmef_service_t *ptr);

`ptr` : |

### idmef_service_get_port ()

    uint16_t *          idmef_service_get_port              (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_port ()

    void                idmef_service_set_port              (idmef_service_t *ptr,
                                                             uint16_t port);

Set `port` object as a children of `ptr`. if `ptr` already contain an `port` object, then it is destroyed, and updated to point to the provided `port` object.

`ptr` : | pointer to a idmef_service_t object.
`port` : | pointer to a uint16_t object.

### idmef_service_new_port ()

    int                 idmef_service_new_port              (idmef_service_t *ptr,
                                                             uint16_t **ret);

Create a new port object, children of idmef_service_t. If `ptr` already contain a uint16_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created uint16_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_portlist ()

    prelude_string_t *  idmef_service_get_portlist          (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_portlist ()

    void                idmef_service_set_portlist          (idmef_service_t *ptr,
                                                             prelude_string_t *portlist);

Set `portlist` object as a children of `ptr`. if `ptr` already contain an `portlist` object, then it is destroyed, and updated to point to the provided `portlist` object.

`ptr` : | pointer to a idmef_service_t object.
`portlist` : | pointer to a prelude_string_t object.

### idmef_service_new_portlist ()

    int                 idmef_service_new_portlist          (idmef_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new portlist object, children of idmef_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_protocol ()

    prelude_string_t *  idmef_service_get_protocol          (idmef_service_t *ptr);

`ptr` : |
Returns : |

### idmef_service_set_protocol ()

    void                idmef_service_set_protocol          (idmef_service_t *ptr,
                                                             prelude_string_t *protocol);

Set `protocol` object as a children of `ptr`. if `ptr` already contain an `protocol` object, then it is destroyed, and updated to point to the provided `protocol` object.

`ptr` : | pointer to a idmef_service_t object.
`protocol` : | pointer to a prelude_string_t object.

### idmef_service_new_protocol ()

    int                 idmef_service_new_protocol          (idmef_service_t *ptr,
                                                             prelude_string_t **ret);

Create a new protocol object, children of idmef_service_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_type ()

    idmef_service_type_t  idmef_service_get_type            (idmef_service_t *ptr);

Access the type children of `ptr`.

`ptr` : | pointer to a idmef_service_t object.
Returns : | a pointer to the idmef_service_type_t children, or NULL if it is not set.

### idmef_service_get_web_service ()

    idmef_web_service_t * idmef_service_get_web_service     (idmef_service_t *ptr);

Access the web_service children of `ptr`.

`ptr` : | pointer to a idmef_service_t object.
Returns : | a pointer to the idmef_web_service_t children, or NULL if it is not set.

### idmef_service_set_web_service ()

    void                idmef_service_set_web_service       (idmef_service_t *ptr,
                                                             idmef_web_service_t *web_service);

Set `web_service` object as a children of `ptr`. if `ptr` already contain a `web_service` object, then it is destroyed, and updated to point to the provided `web_service` object.

`ptr` : | pointer to a idmef_service_t object.
`web_service` : | pointer to a idmef_web_service_t object.

### idmef_service_new_web_service ()

    int                 idmef_service_new_web_service       (idmef_service_t *ptr,
                                                             idmef_web_service_t **ret);

Create a new idmef_web_service_t object, children of idmef_service_t. If `ptr` already contain a idmef_web_service_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer where to store the created idmef_web_service_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_service_get_snmp_service ()

    idmef_snmp_service_t * idmef_service_get_snmp_service   (idmef_service_t *ptr);

Access the snmp_service children of `ptr`.

`ptr` : | pointer to a idmef_service_t object.
Returns : | a pointer to the idmef_snmp_service_t children, or NULL if it is not set.

### idmef_service_set_snmp_service ()

    void                idmef_service_set_snmp_service      (idmef_service_t *ptr,
                                                             idmef_snmp_service_t *snmp_service);

Set `snmp_service` object as a children of `ptr`. if `ptr` already contain a `snmp_service` object, then it is destroyed, and updated to point to the provided `snmp_service` object.

`ptr` : | pointer to a idmef_service_t object.
`snmp_service` : | pointer to a idmef_snmp_service_t object.

### idmef_service_new_snmp_service ()

    int                 idmef_service_new_snmp_service      (idmef_service_t *ptr,
                                                             idmef_snmp_service_t **ret);

Create a new idmef_snmp_service_t object, children of idmef_service_t. If `ptr` already contain a idmef_snmp_service_t object, then it is destroyed.

`ptr` : | pointer to a idmef_service_t object.
`ret` : | pointer where to store the created idmef_snmp_service_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_node_category_t

    typedef enum {
            IDMEF_NODE_CATEGORY_ERROR = -1,
            IDMEF_NODE_CATEGORY_UNKNOWN = 0,
            IDMEF_NODE_CATEGORY_ADS = 1,
            IDMEF_NODE_CATEGORY_AFS = 2,
            IDMEF_NODE_CATEGORY_CODA = 3,
            IDMEF_NODE_CATEGORY_DFS = 4,
            IDMEF_NODE_CATEGORY_DNS = 5,
            IDMEF_NODE_CATEGORY_HOSTS = 6,
            IDMEF_NODE_CATEGORY_KERBEROS = 7,
            IDMEF_NODE_CATEGORY_NDS = 8,
            IDMEF_NODE_CATEGORY_NIS = 9,
            IDMEF_NODE_CATEGORY_NISPLUS = 10,
            IDMEF_NODE_CATEGORY_NT = 11,
            IDMEF_NODE_CATEGORY_WFW = 12
    } idmef_node_category_t;

### idmef_node_category_to_numeric ()

    idmef_node_category_t  idmef_node_category_to_numeric   (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_node_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_node_category_to_string ()

    const char *        idmef_node_category_to_string       (idmef_node_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_node_category_t value.

`val` : | an enumeration value for idmef_node_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_node_t

    typedef struct idmef_node idmef_node_t;

### idmef_node_new ()

    int                 idmef_node_new                      (idmef_node_t **ret);

Create a new idmef_node_t object.

`ret` : | Pointer where to store the created idmef_node_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_node_copy ()

    int                 idmef_node_copy                     (const idmef_node_t *src,
                                                             idmef_node_t *dst);

Copy a new idmef_node_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_node_clone ()

    int                 idmef_node_clone                    (idmef_node_t *src,
                                                             idmef_node_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_node_ref ()

    idmef_node_t *      idmef_node_ref                      (idmef_node_t *node);

Increase `node` reference count, so that it can be referenced multiple time.

`node` : | pointer to a idmef_node_t object.
Returns : | a pointer to `node`.

### idmef_node_destroy ()

    void                idmef_node_destroy                  (idmef_node_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_node_t object.

### idmef_node_get_ident ()

    prelude_string_t *  idmef_node_get_ident                (idmef_node_t *ptr);

`ptr` : |
Returns : |

### idmef_node_set_ident ()

    void                idmef_node_set_ident                (idmef_node_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_node_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_node_new_ident ()

    int                 idmef_node_new_ident                (idmef_node_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_node_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_node_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_node_get_category ()

    idmef_node_category_t  idmef_node_get_category          (idmef_node_t *ptr);

Get category children of the idmef_node_t object.

`ptr` : | pointer to a idmef_node_t object.
Returns : | a pointer to a idmef_node_category_t object, or NULL if the children object is not set.

### idmef_node_set_category ()

    void                idmef_node_set_category             (idmef_node_t *ptr,
                                                             idmef_node_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_node_t object.
`category` : | pointer to a idmef_node_category_t object.

### idmef_node_new_category ()

    int                 idmef_node_new_category             (idmef_node_t *ptr,
                                                             idmef_node_category_t **ret);

Create a new category object, children of idmef_node_t. If `ptr` already contain a idmef_node_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_node_t object.
`ret` : | pointer to an address where to store the created idmef_node_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_node_get_location ()

    prelude_string_t *  idmef_node_get_location             (idmef_node_t *ptr);

`ptr` : |
Returns : |

### idmef_node_set_location ()

    void                idmef_node_set_location             (idmef_node_t *ptr,
                                                             prelude_string_t *location);

Set `location` object as a children of `ptr`. if `ptr` already contain an `location` object, then it is destroyed, and updated to point to the provided `location` object.

`ptr` : | pointer to a idmef_node_t object.
`location` : | pointer to a prelude_string_t object.

### idmef_node_new_location ()

    int                 idmef_node_new_location             (idmef_node_t *ptr,
                                                             prelude_string_t **ret);

Create a new location object, children of idmef_node_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_node_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_node_get_name ()

    prelude_string_t *  idmef_node_get_name                 (idmef_node_t *ptr);

`ptr` : |
Returns : |

### idmef_node_set_name ()

    void                idmef_node_set_name                 (idmef_node_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_node_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_node_new_name ()

    int                 idmef_node_new_name                 (idmef_node_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_node_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_node_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_node_get_next_address ()

    idmef_address_t *   idmef_node_get_next_address         (idmef_node_t *node,
                                                             idmef_address_t *address_cur);

Get the next idmef_address_t object listed in `ptr`. When iterating over the idmef_address_t object listed in `ptr`, `object` should be set to the latest returned idmef_address_t object.

`node` : | pointer to a idmef_node_t object.
`address_cur` : | pointer to a idmef_address_t object.
Returns : | the next idmef_address_t in the list.

### idmef_node_set_address ()

    void                idmef_node_set_address              (idmef_node_t *ptr,
                                                             idmef_address_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_address_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_node_t object.
`object` : | pointer to a idmef_address_t object.
`pos` : | Position in the list.

### idmef_node_new_address ()

    int                 idmef_node_new_address              (idmef_node_t *ptr,
                                                             idmef_address_t **ret,
                                                             int pos);

Create a new idmef_address_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_address_t object. The created idmef_address_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_node_t object.
`ret` : | pointer to an address where to store the created idmef_address_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_source_spoofed_t

    typedef enum {
            IDMEF_SOURCE_SPOOFED_ERROR = -1,
            IDMEF_SOURCE_SPOOFED_UNKNOWN = 0,
            IDMEF_SOURCE_SPOOFED_YES = 1,
            IDMEF_SOURCE_SPOOFED_NO = 2
    } idmef_source_spoofed_t;

### idmef_source_spoofed_to_numeric ()

    idmef_source_spoofed_t  idmef_source_spoofed_to_numeric (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_source_spoofed_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_source_spoofed_to_string ()

    const char *        idmef_source_spoofed_to_string      (idmef_source_spoofed_t val);

Return the IDMEF string equivalent of `val` provided idmef_source_spoofed_t value.

`val` : | an enumeration value for idmef_source_spoofed_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_source_t

    typedef struct idmef_source idmef_source_t;

### idmef_source_new ()

    int                 idmef_source_new                    (idmef_source_t **ret);

Create a new idmef_source_t object.

`ret` : | Pointer where to store the created idmef_source_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_source_copy ()

    int                 idmef_source_copy                   (const idmef_source_t *src,
                                                             idmef_source_t *dst);

Copy a new idmef_source_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_source_clone ()

    int                 idmef_source_clone                  (idmef_source_t *src,
                                                             idmef_source_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_source_ref ()

    idmef_source_t *    idmef_source_ref                    (idmef_source_t *source);

Increase `source` reference count, so that it can be referenced multiple time.

`source` : | pointer to a idmef_source_t object.
Returns : | a pointer to `source`.

### idmef_source_destroy ()

    void                idmef_source_destroy                (idmef_source_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_source_t object.

### idmef_source_get_ident ()

    prelude_string_t *  idmef_source_get_ident              (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_ident ()

    void                idmef_source_set_ident              (idmef_source_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_source_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_source_new_ident ()

    int                 idmef_source_new_ident              (idmef_source_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_source_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_spoofed ()

    idmef_source_spoofed_t  idmef_source_get_spoofed        (idmef_source_t *ptr);

Get spoofed children of the idmef_source_t object.

`ptr` : | pointer to a idmef_source_t object.
Returns : | a pointer to a idmef_source_spoofed_t object, or NULL if the children object is not set.

### idmef_source_set_spoofed ()

    void                idmef_source_set_spoofed            (idmef_source_t *ptr,
                                                             idmef_source_spoofed_t spoofed);

Set `spoofed` object as a children of `ptr`. if `ptr` already contain an `spoofed` object, then it is destroyed, and updated to point to the provided `spoofed` object.

`ptr` : | pointer to a idmef_source_t object.
`spoofed` : | pointer to a idmef_source_spoofed_t object.

### idmef_source_new_spoofed ()

    int                 idmef_source_new_spoofed            (idmef_source_t *ptr,
                                                             idmef_source_spoofed_t **ret);

Create a new spoofed object, children of idmef_source_t. If `ptr` already contain a idmef_source_spoofed_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created idmef_source_spoofed_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_interface ()

    prelude_string_t *  idmef_source_get_interface          (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_interface ()

    void                idmef_source_set_interface          (idmef_source_t *ptr,
                                                             prelude_string_t *interface);

Set `interface` object as a children of `ptr`. if `ptr` already contain an `interface` object, then it is destroyed, and updated to point to the provided `interface` object.

`ptr` : | pointer to a idmef_source_t object.
`interface` : | pointer to a prelude_string_t object.

### idmef_source_new_interface ()

    int                 idmef_source_new_interface          (idmef_source_t *ptr,
                                                             prelude_string_t **ret);

Create a new interface object, children of idmef_source_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_node ()

    idmef_node_t *      idmef_source_get_node               (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_node ()

    void                idmef_source_set_node               (idmef_source_t *ptr,
                                                             idmef_node_t *node);

Set `node` object as a children of `ptr`. if `ptr` already contain an `node` object, then it is destroyed, and updated to point to the provided `node` object.

`ptr` : | pointer to a idmef_source_t object.
`node` : | pointer to a idmef_node_t object.

### idmef_source_new_node ()

    int                 idmef_source_new_node               (idmef_source_t *ptr,
                                                             idmef_node_t **ret);

Create a new node object, children of idmef_source_t. If `ptr` already contain a idmef_node_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created idmef_node_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_user ()

    idmef_user_t *      idmef_source_get_user               (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_user ()

    void                idmef_source_set_user               (idmef_source_t *ptr,
                                                             idmef_user_t *user);

Set `user` object as a children of `ptr`. if `ptr` already contain an `user` object, then it is destroyed, and updated to point to the provided `user` object.

`ptr` : | pointer to a idmef_source_t object.
`user` : | pointer to a idmef_user_t object.

### idmef_source_new_user ()

    int                 idmef_source_new_user               (idmef_source_t *ptr,
                                                             idmef_user_t **ret);

Create a new user object, children of idmef_source_t. If `ptr` already contain a idmef_user_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created idmef_user_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_process ()

    idmef_process_t *   idmef_source_get_process            (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_process ()

    void                idmef_source_set_process            (idmef_source_t *ptr,
                                                             idmef_process_t *process);

Set `process` object as a children of `ptr`. if `ptr` already contain an `process` object, then it is destroyed, and updated to point to the provided `process` object.

`ptr` : | pointer to a idmef_source_t object.
`process` : | pointer to a idmef_process_t object.

### idmef_source_new_process ()

    int                 idmef_source_new_process            (idmef_source_t *ptr,
                                                             idmef_process_t **ret);

Create a new process object, children of idmef_source_t. If `ptr` already contain a idmef_process_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created idmef_process_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_source_get_service ()

    idmef_service_t *   idmef_source_get_service            (idmef_source_t *ptr);

`ptr` : |
Returns : |

### idmef_source_set_service ()

    void                idmef_source_set_service            (idmef_source_t *ptr,
                                                             idmef_service_t *service);

Set `service` object as a children of `ptr`. if `ptr` already contain an `service` object, then it is destroyed, and updated to point to the provided `service` object.

`ptr` : | pointer to a idmef_source_t object.
`service` : | pointer to a idmef_service_t object.

### idmef_source_new_service ()

    int                 idmef_source_new_service            (idmef_source_t *ptr,
                                                             idmef_service_t **ret);

Create a new service object, children of idmef_source_t. If `ptr` already contain a idmef_service_t object, then it is destroyed.

`ptr` : | pointer to a idmef_source_t object.
`ret` : | pointer to an address where to store the created idmef_service_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_access_t

    typedef struct idmef_file_access idmef_file_access_t;

### idmef_file_access_new ()

    int                 idmef_file_access_new               (idmef_file_access_t **ret);

Create a new idmef_file_access_t object.

`ret` : | Pointer where to store the created idmef_file_access_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_access_copy ()

    int                 idmef_file_access_copy              (const idmef_file_access_t *src,
                                                             idmef_file_access_t *dst);

Copy a new idmef_file_access_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_access_clone ()

    int                 idmef_file_access_clone             (idmef_file_access_t *src,
                                                             idmef_file_access_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_access_ref ()

    idmef_file_access_t * idmef_file_access_ref             (idmef_file_access_t *file_access);

Increase `file_access` reference count, so that it can be referenced multiple time.

`file_access` : | pointer to a idmef_file_access_t object.
Returns : | a pointer to `file_access`.

### idmef_file_access_destroy ()

    void                idmef_file_access_destroy           (idmef_file_access_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_file_access_t object.

### idmef_file_access_get_user_id ()

    idmef_user_id_t *   idmef_file_access_get_user_id       (idmef_file_access_t *ptr);

`ptr` : |
Returns : |

### idmef_file_access_set_user_id ()

    void                idmef_file_access_set_user_id       (idmef_file_access_t *ptr,
                                                             idmef_user_id_t *user_id);

Set `user_id` object as a children of `ptr`. if `ptr` already contain an `user_id` object, then it is destroyed, and updated to point to the provided `user_id` object.

`ptr` : | pointer to a idmef_file_access_t object.
`user_id` : | pointer to a idmef_user_id_t object.

### idmef_file_access_new_user_id ()

    int                 idmef_file_access_new_user_id       (idmef_file_access_t *ptr,
                                                             idmef_user_id_t **ret);

Create a new user_id object, children of idmef_file_access_t. If `ptr` already contain a idmef_user_id_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_access_t object.
`ret` : | pointer to an address where to store the created idmef_user_id_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_access_get_next_permission ()

    prelude_string_t *  idmef_file_access_get_next_permission
                                                            (idmef_file_access_t *file_access,
                                                             prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in `ptr`. When iterating over the prelude_string_t object listed in `ptr`, `object` should be set to the latest returned prelude_string_t object.

`file_access` : | pointer to a idmef_file_access_t object.
`prelude_string_cur` : | pointer to a prelude_string_t object.
Returns : | the next prelude_string_t in the list.

### idmef_file_access_set_permission ()

    void                idmef_file_access_set_permission    (idmef_file_access_t *ptr,
                                                             prelude_string_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of prelude_string_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_access_t object.
`object` : | pointer to a prelude_string_t object.
`pos` : | Position in the list.

### idmef_file_access_new_permission ()

    int                 idmef_file_access_new_permission    (idmef_file_access_t *ptr,
                                                             prelude_string_t **ret,
                                                             int pos);

Create a new prelude_string_t children of `ptr`, and add it to position `pos` of `ptr` list of prelude_string_t object. The created prelude_string_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_access_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_t

    typedef struct idmef_inode idmef_inode_t;

### idmef_inode_new ()

    int                 idmef_inode_new                     (idmef_inode_t **ret);

Create a new idmef_inode_t object.

`ret` : | Pointer where to store the created idmef_inode_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_inode_copy ()

    int                 idmef_inode_copy                    (const idmef_inode_t *src,
                                                             idmef_inode_t *dst);

Copy a new idmef_inode_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_inode_clone ()

    int                 idmef_inode_clone                   (idmef_inode_t *src,
                                                             idmef_inode_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_inode_ref ()

    idmef_inode_t *     idmef_inode_ref                     (idmef_inode_t *inode);

Increase `inode` reference count, so that it can be referenced multiple time.

`inode` : | pointer to a idmef_inode_t object.
Returns : | a pointer to `inode`.

### idmef_inode_destroy ()

    void                idmef_inode_destroy                 (idmef_inode_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_inode_t object.

### idmef_inode_get_change_time ()

    idmef_time_t *      idmef_inode_get_change_time         (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_change_time ()

    void                idmef_inode_set_change_time         (idmef_inode_t *ptr,
                                                             idmef_time_t *change_time);

Set `change_time` object as a children of `ptr`. if `ptr` already contain an `change_time` object, then it is destroyed, and updated to point to the provided `change_time` object.

`ptr` : | pointer to a idmef_inode_t object.
`change_time` : | pointer to a idmef_time_t object.

### idmef_inode_new_change_time ()

    int                 idmef_inode_new_change_time         (idmef_inode_t *ptr,
                                                             idmef_time_t **ret);

Create a new change_time object, children of idmef_inode_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_unset_number ()

    void                idmef_inode_unset_number            (idmef_inode_t *ptr);

`ptr` : |

### idmef_inode_get_number ()

    uint32_t *          idmef_inode_get_number              (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_number ()

    void                idmef_inode_set_number              (idmef_inode_t *ptr,
                                                             uint32_t number);

Set `number` object as a children of `ptr`. if `ptr` already contain an `number` object, then it is destroyed, and updated to point to the provided `number` object.

`ptr` : | pointer to a idmef_inode_t object.
`number` : | pointer to a uint32_t object.

### idmef_inode_new_number ()

    int                 idmef_inode_new_number              (idmef_inode_t *ptr,
                                                             uint32_t **ret);

Create a new number object, children of idmef_inode_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_unset_major_device ()

    void                idmef_inode_unset_major_device      (idmef_inode_t *ptr);

`ptr` : |

### idmef_inode_get_major_device ()

    uint32_t *          idmef_inode_get_major_device        (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_major_device ()

    void                idmef_inode_set_major_device        (idmef_inode_t *ptr,
                                                             uint32_t major_device);

Set `major_device` object as a children of `ptr`. if `ptr` already contain an `major_device` object, then it is destroyed, and updated to point to the provided `major_device` object.

`ptr` : | pointer to a idmef_inode_t object.
`major_device` : | pointer to a uint32_t object.

### idmef_inode_new_major_device ()

    int                 idmef_inode_new_major_device        (idmef_inode_t *ptr,
                                                             uint32_t **ret);

Create a new major_device object, children of idmef_inode_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_unset_minor_device ()

    void                idmef_inode_unset_minor_device      (idmef_inode_t *ptr);

`ptr` : |

### idmef_inode_get_minor_device ()

    uint32_t *          idmef_inode_get_minor_device        (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_minor_device ()

    void                idmef_inode_set_minor_device        (idmef_inode_t *ptr,
                                                             uint32_t minor_device);

Set `minor_device` object as a children of `ptr`. if `ptr` already contain an `minor_device` object, then it is destroyed, and updated to point to the provided `minor_device` object.

`ptr` : | pointer to a idmef_inode_t object.
`minor_device` : | pointer to a uint32_t object.

### idmef_inode_new_minor_device ()

    int                 idmef_inode_new_minor_device        (idmef_inode_t *ptr,
                                                             uint32_t **ret);

Create a new minor_device object, children of idmef_inode_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_unset_c_major_device ()

    void                idmef_inode_unset_c_major_device    (idmef_inode_t *ptr);

`ptr` : |

### idmef_inode_get_c_major_device ()

    uint32_t *          idmef_inode_get_c_major_device      (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_c_major_device ()

    void                idmef_inode_set_c_major_device      (idmef_inode_t *ptr,
                                                             uint32_t c_major_device);

Set `c_major_device` object as a children of `ptr`. if `ptr` already contain an `c_major_device` object, then it is destroyed, and updated to point to the provided `c_major_device` object.

`ptr` : | pointer to a idmef_inode_t object.
`c_major_device` : | pointer to a uint32_t object.

### idmef_inode_new_c_major_device ()

    int                 idmef_inode_new_c_major_device      (idmef_inode_t *ptr,
                                                             uint32_t **ret);

Create a new c_major_device object, children of idmef_inode_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_inode_unset_c_minor_device ()

    void                idmef_inode_unset_c_minor_device    (idmef_inode_t *ptr);

`ptr` : |

### idmef_inode_get_c_minor_device ()

    uint32_t *          idmef_inode_get_c_minor_device      (idmef_inode_t *ptr);

`ptr` : |
Returns : |

### idmef_inode_set_c_minor_device ()

    void                idmef_inode_set_c_minor_device      (idmef_inode_t *ptr,
                                                             uint32_t c_minor_device);

Set `c_minor_device` object as a children of `ptr`. if `ptr` already contain an `c_minor_device` object, then it is destroyed, and updated to point to the provided `c_minor_device` object.

`ptr` : | pointer to a idmef_inode_t object.
`c_minor_device` : | pointer to a uint32_t object.

### idmef_inode_new_c_minor_device ()

    int                 idmef_inode_new_c_minor_device      (idmef_inode_t *ptr,
                                                             uint32_t **ret);

Create a new c_minor_device object, children of idmef_inode_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_inode_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_linkage_t

    typedef struct idmef_linkage idmef_linkage_t;

### enum idmef_checksum_algorithm_t

    typedef enum {
            IDMEF_CHECKSUM_ALGORITHM_ERROR = -1,
            IDMEF_CHECKSUM_ALGORITHM_MD4 = 1,
            IDMEF_CHECKSUM_ALGORITHM_MD5 = 2,
            IDMEF_CHECKSUM_ALGORITHM_SHA1 = 3,
            IDMEF_CHECKSUM_ALGORITHM_SHA2_256 = 4,
            IDMEF_CHECKSUM_ALGORITHM_SHA2_384 = 5,
            IDMEF_CHECKSUM_ALGORITHM_SHA2_512 = 6,
            IDMEF_CHECKSUM_ALGORITHM_CRC_32 = 7,
            IDMEF_CHECKSUM_ALGORITHM_HAVAL = 8,
            IDMEF_CHECKSUM_ALGORITHM_TIGER = 9,
            IDMEF_CHECKSUM_ALGORITHM_GOST = 11
    } idmef_checksum_algorithm_t;

### idmef_checksum_algorithm_to_numeric ()

    idmef_checksum_algorithm_t  idmef_checksum_algorithm_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_checksum_algorithm_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_checksum_algorithm_to_string ()

    const char *        idmef_checksum_algorithm_to_string  (idmef_checksum_algorithm_t val);

Return the IDMEF string equivalent of `val` provided idmef_checksum_algorithm_t value.

`val` : | an enumeration value for idmef_checksum_algorithm_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_checksum_t

    typedef struct idmef_checksum idmef_checksum_t;

### idmef_checksum_new ()

    int                 idmef_checksum_new                  (idmef_checksum_t **ret);

Create a new idmef_checksum_t object.

`ret` : | Pointer where to store the created idmef_checksum_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_checksum_copy ()

    int                 idmef_checksum_copy                 (const idmef_checksum_t *src,
                                                             idmef_checksum_t *dst);

Copy a new idmef_checksum_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_checksum_clone ()

    int                 idmef_checksum_clone                (idmef_checksum_t *src,
                                                             idmef_checksum_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_checksum_ref ()

    idmef_checksum_t *  idmef_checksum_ref                  (idmef_checksum_t *checksum);

Increase `checksum` reference count, so that it can be referenced multiple time.

`checksum` : | pointer to a idmef_checksum_t object.
Returns : | a pointer to `checksum`.

### idmef_checksum_destroy ()

    void                idmef_checksum_destroy              (idmef_checksum_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_checksum_t object.

### idmef_checksum_get_value ()

    prelude_string_t *  idmef_checksum_get_value            (idmef_checksum_t *ptr);

`ptr` : |
Returns : |

### idmef_checksum_set_value ()

    void                idmef_checksum_set_value            (idmef_checksum_t *ptr,
                                                             prelude_string_t *value);

Set `value` object as a children of `ptr`. if `ptr` already contain an `value` object, then it is destroyed, and updated to point to the provided `value` object.

`ptr` : | pointer to a idmef_checksum_t object.
`value` : | pointer to a prelude_string_t object.

### idmef_checksum_new_value ()

    int                 idmef_checksum_new_value            (idmef_checksum_t *ptr,
                                                             prelude_string_t **ret);

Create a new value object, children of idmef_checksum_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_checksum_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_checksum_get_key ()

    prelude_string_t *  idmef_checksum_get_key              (idmef_checksum_t *ptr);

`ptr` : |
Returns : |

### idmef_checksum_set_key ()

    void                idmef_checksum_set_key              (idmef_checksum_t *ptr,
                                                             prelude_string_t *key);

Set `key` object as a children of `ptr`. if `ptr` already contain an `key` object, then it is destroyed, and updated to point to the provided `key` object.

`ptr` : | pointer to a idmef_checksum_t object.
`key` : | pointer to a prelude_string_t object.

### idmef_checksum_new_key ()

    int                 idmef_checksum_new_key              (idmef_checksum_t *ptr,
                                                             prelude_string_t **ret);

Create a new key object, children of idmef_checksum_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_checksum_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_checksum_get_algorithm ()

    idmef_checksum_algorithm_t  idmef_checksum_get_algorithm
                                                            (idmef_checksum_t *ptr);

Get algorithm children of the idmef_checksum_t object.

`ptr` : | pointer to a idmef_checksum_t object.
Returns : | a pointer to a idmef_checksum_algorithm_t object, or NULL if the children object is not set.

### idmef_checksum_set_algorithm ()

    void                idmef_checksum_set_algorithm        (idmef_checksum_t *ptr,
                                                             idmef_checksum_algorithm_t algorithm);

Set `algorithm` object as a children of `ptr`. if `ptr` already contain an `algorithm` object, then it is destroyed, and updated to point to the provided `algorithm` object.

`ptr` : | pointer to a idmef_checksum_t object.
`algorithm` : | pointer to a idmef_checksum_algorithm_t object.

### idmef_checksum_new_algorithm ()

    int                 idmef_checksum_new_algorithm        (idmef_checksum_t *ptr,
                                                             idmef_checksum_algorithm_t **ret);

Create a new algorithm object, children of idmef_checksum_t. If `ptr` already contain a idmef_checksum_algorithm_t object, then it is destroyed.

`ptr` : | pointer to a idmef_checksum_t object.
`ret` : | pointer to an address where to store the created idmef_checksum_algorithm_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_file_category_t

    typedef enum {
            IDMEF_FILE_CATEGORY_ERROR = -1,
            IDMEF_FILE_CATEGORY_CURRENT = 1,
            IDMEF_FILE_CATEGORY_ORIGINAL = 2
    } idmef_file_category_t;

### idmef_file_category_to_numeric ()

    idmef_file_category_t  idmef_file_category_to_numeric   (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_file_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_file_category_to_string ()

    const char *        idmef_file_category_to_string       (idmef_file_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_file_category_t value.

`val` : | an enumeration value for idmef_file_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### enum idmef_file_fstype_t

    typedef enum {
            IDMEF_FILE_FSTYPE_ERROR = -1,
            IDMEF_FILE_FSTYPE_UFS = 1,
            IDMEF_FILE_FSTYPE_EFS = 2,
            IDMEF_FILE_FSTYPE_NFS = 3,
            IDMEF_FILE_FSTYPE_AFS = 4,
            IDMEF_FILE_FSTYPE_NTFS = 5,
            IDMEF_FILE_FSTYPE_FAT16 = 6,
            IDMEF_FILE_FSTYPE_FAT32 = 7,
            IDMEF_FILE_FSTYPE_PCFS = 8,
            IDMEF_FILE_FSTYPE_JOLIET = 9,
            IDMEF_FILE_FSTYPE_ISO9660 = 10
    } idmef_file_fstype_t;

### idmef_file_fstype_to_numeric ()

    idmef_file_fstype_t  idmef_file_fstype_to_numeric       (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_file_fstype_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_file_fstype_to_string ()

    const char *        idmef_file_fstype_to_string         (idmef_file_fstype_t val);

Return the IDMEF string equivalent of `val` provided idmef_file_fstype_t value.

`val` : | an enumeration value for idmef_file_fstype_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_file_t

    typedef struct idmef_file idmef_file_t;

### idmef_file_new ()

    int                 idmef_file_new                      (idmef_file_t **ret);

Create a new idmef_file_t object.

`ret` : | Pointer where to store the created idmef_file_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_copy ()

    int                 idmef_file_copy                     (const idmef_file_t *src,
                                                             idmef_file_t *dst);

Copy a new idmef_file_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_clone ()

    int                 idmef_file_clone                    (idmef_file_t *src,
                                                             idmef_file_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_file_ref ()

    idmef_file_t *      idmef_file_ref                      (idmef_file_t *file);

Increase `file` reference count, so that it can be referenced multiple time.

`file` : | pointer to a idmef_file_t object.
Returns : | a pointer to `file`.

### idmef_file_destroy ()

    void                idmef_file_destroy                  (idmef_file_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_file_t object.

### idmef_file_get_ident ()

    prelude_string_t *  idmef_file_get_ident                (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_ident ()

    void                idmef_file_set_ident                (idmef_file_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_file_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_file_new_ident ()

    int                 idmef_file_new_ident                (idmef_file_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_file_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_name ()

    prelude_string_t *  idmef_file_get_name                 (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_name ()

    void                idmef_file_set_name                 (idmef_file_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_file_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_file_new_name ()

    int                 idmef_file_new_name                 (idmef_file_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_file_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_path ()

    prelude_string_t *  idmef_file_get_path                 (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_path ()

    void                idmef_file_set_path                 (idmef_file_t *ptr,
                                                             prelude_string_t *path);

Set `path` object as a children of `ptr`. if `ptr` already contain an `path` object, then it is destroyed, and updated to point to the provided `path` object.

`ptr` : | pointer to a idmef_file_t object.
`path` : | pointer to a prelude_string_t object.

### idmef_file_new_path ()

    int                 idmef_file_new_path                 (idmef_file_t *ptr,
                                                             prelude_string_t **ret);

Create a new path object, children of idmef_file_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_create_time ()

    idmef_time_t *      idmef_file_get_create_time          (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_create_time ()

    void                idmef_file_set_create_time          (idmef_file_t *ptr,
                                                             idmef_time_t *create_time);

Set `create_time` object as a children of `ptr`. if `ptr` already contain an `create_time` object, then it is destroyed, and updated to point to the provided `create_time` object.

`ptr` : | pointer to a idmef_file_t object.
`create_time` : | pointer to a idmef_time_t object.

### idmef_file_new_create_time ()

    int                 idmef_file_new_create_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);

Create a new create_time object, children of idmef_file_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_modify_time ()

    idmef_time_t *      idmef_file_get_modify_time          (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_modify_time ()

    void                idmef_file_set_modify_time          (idmef_file_t *ptr,
                                                             idmef_time_t *modify_time);

Set `modify_time` object as a children of `ptr`. if `ptr` already contain an `modify_time` object, then it is destroyed, and updated to point to the provided `modify_time` object.

`ptr` : | pointer to a idmef_file_t object.
`modify_time` : | pointer to a idmef_time_t object.

### idmef_file_new_modify_time ()

    int                 idmef_file_new_modify_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);

Create a new modify_time object, children of idmef_file_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_access_time ()

    idmef_time_t *      idmef_file_get_access_time          (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_access_time ()

    void                idmef_file_set_access_time          (idmef_file_t *ptr,
                                                             idmef_time_t *access_time);

Set `access_time` object as a children of `ptr`. if `ptr` already contain an `access_time` object, then it is destroyed, and updated to point to the provided `access_time` object.

`ptr` : | pointer to a idmef_file_t object.
`access_time` : | pointer to a idmef_time_t object.

### idmef_file_new_access_time ()

    int                 idmef_file_new_access_time          (idmef_file_t *ptr,
                                                             idmef_time_t **ret);

Create a new access_time object, children of idmef_file_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_unset_data_size ()

    void                idmef_file_unset_data_size          (idmef_file_t *ptr);

`ptr` : |

### idmef_file_get_data_size ()

    uint64_t *          idmef_file_get_data_size            (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_data_size ()

    void                idmef_file_set_data_size            (idmef_file_t *ptr,
                                                             uint64_t data_size);

Set `data_size` object as a children of `ptr`. if `ptr` already contain an `data_size` object, then it is destroyed, and updated to point to the provided `data_size` object.

`ptr` : | pointer to a idmef_file_t object.
`data_size` : | pointer to a uint64_t object.

### idmef_file_new_data_size ()

    int                 idmef_file_new_data_size            (idmef_file_t *ptr,
                                                             uint64_t **ret);

Create a new data_size object, children of idmef_file_t. If `ptr` already contain a uint64_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created uint64_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_unset_disk_size ()

    void                idmef_file_unset_disk_size          (idmef_file_t *ptr);

`ptr` : |

### idmef_file_get_disk_size ()

    uint64_t *          idmef_file_get_disk_size            (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_disk_size ()

    void                idmef_file_set_disk_size            (idmef_file_t *ptr,
                                                             uint64_t disk_size);

Set `disk_size` object as a children of `ptr`. if `ptr` already contain an `disk_size` object, then it is destroyed, and updated to point to the provided `disk_size` object.

`ptr` : | pointer to a idmef_file_t object.
`disk_size` : | pointer to a uint64_t object.

### idmef_file_new_disk_size ()

    int                 idmef_file_new_disk_size            (idmef_file_t *ptr,
                                                             uint64_t **ret);

Create a new disk_size object, children of idmef_file_t. If `ptr` already contain a uint64_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created uint64_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_next_file_access ()

    idmef_file_access_t * idmef_file_get_next_file_access   (idmef_file_t *file,
                                                             idmef_file_access_t *file_access_cur);

Get the next idmef_file_access_t object listed in `ptr`. When iterating over the idmef_file_access_t object listed in `ptr`, `object` should be set to the latest returned idmef_file_access_t object.

`file` : | pointer to a idmef_file_t object.
`file_access_cur` : | pointer to a idmef_file_access_t object.
Returns : | the next idmef_file_access_t in the list.

### idmef_file_set_file_access ()

    void                idmef_file_set_file_access          (idmef_file_t *ptr,
                                                             idmef_file_access_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_file_access_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`object` : | pointer to a idmef_file_access_t object.
`pos` : | Position in the list.

### idmef_file_new_file_access ()

    int                 idmef_file_new_file_access          (idmef_file_t *ptr,
                                                             idmef_file_access_t **ret,
                                                             int pos);

Create a new idmef_file_access_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_file_access_t object. The created idmef_file_access_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_file_access_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_next_linkage ()

    idmef_linkage_t *   idmef_file_get_next_linkage         (idmef_file_t *file,
                                                             idmef_linkage_t *linkage_cur);

Get the next idmef_linkage_t object listed in `ptr`. When iterating over the idmef_linkage_t object listed in `ptr`, `object` should be set to the latest returned idmef_linkage_t object.

`file` : | pointer to a idmef_file_t object.
`linkage_cur` : | pointer to a idmef_linkage_t object.
Returns : | the next idmef_linkage_t in the list.

### idmef_file_set_linkage ()

    void                idmef_file_set_linkage              (idmef_file_t *ptr,
                                                             idmef_linkage_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_linkage_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`object` : | pointer to a idmef_linkage_t object.
`pos` : | Position in the list.

### idmef_file_new_linkage ()

    int                 idmef_file_new_linkage              (idmef_file_t *ptr,
                                                             idmef_linkage_t **ret,
                                                             int pos);

Create a new idmef_linkage_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_linkage_t object. The created idmef_linkage_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_linkage_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_inode ()

    idmef_inode_t *     idmef_file_get_inode                (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_inode ()

    void                idmef_file_set_inode                (idmef_file_t *ptr,
                                                             idmef_inode_t *inode);

Set `inode` object as a children of `ptr`. if `ptr` already contain an `inode` object, then it is destroyed, and updated to point to the provided `inode` object.

`ptr` : | pointer to a idmef_file_t object.
`inode` : | pointer to a idmef_inode_t object.

### idmef_file_new_inode ()

    int                 idmef_file_new_inode                (idmef_file_t *ptr,
                                                             idmef_inode_t **ret);

Create a new inode object, children of idmef_file_t. If `ptr` already contain a idmef_inode_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_inode_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_next_checksum ()

    idmef_checksum_t *  idmef_file_get_next_checksum        (idmef_file_t *file,
                                                             idmef_checksum_t *checksum_cur);

Get the next idmef_checksum_t object listed in `ptr`. When iterating over the idmef_checksum_t object listed in `ptr`, `object` should be set to the latest returned idmef_checksum_t object.

`file` : | pointer to a idmef_file_t object.
`checksum_cur` : | pointer to a idmef_checksum_t object.
Returns : | the next idmef_checksum_t in the list.

### idmef_file_set_checksum ()

    void                idmef_file_set_checksum             (idmef_file_t *ptr,
                                                             idmef_checksum_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_checksum_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`object` : | pointer to a idmef_checksum_t object.
`pos` : | Position in the list.

### idmef_file_new_checksum ()

    int                 idmef_file_new_checksum             (idmef_file_t *ptr,
                                                             idmef_checksum_t **ret,
                                                             int pos);

Create a new idmef_checksum_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_checksum_t object. The created idmef_checksum_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_checksum_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_category ()

    idmef_file_category_t  idmef_file_get_category          (idmef_file_t *ptr);

Get category children of the idmef_file_t object.

`ptr` : | pointer to a idmef_file_t object.
Returns : | a pointer to a idmef_file_category_t object, or NULL if the children object is not set.

### idmef_file_set_category ()

    void                idmef_file_set_category             (idmef_file_t *ptr,
                                                             idmef_file_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_file_t object.
`category` : | pointer to a idmef_file_category_t object.

### idmef_file_new_category ()

    int                 idmef_file_new_category             (idmef_file_t *ptr,
                                                             idmef_file_category_t **ret);

Create a new category object, children of idmef_file_t. If `ptr` already contain a idmef_file_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_file_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_unset_fstype ()

    void                idmef_file_unset_fstype             (idmef_file_t *ptr);

`ptr` : |

### idmef_file_get_fstype ()

    idmef_file_fstype_t * idmef_file_get_fstype             (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_fstype ()

    void                idmef_file_set_fstype               (idmef_file_t *ptr,
                                                             idmef_file_fstype_t fstype);

Set `fstype` object as a children of `ptr`. if `ptr` already contain an `fstype` object, then it is destroyed, and updated to point to the provided `fstype` object.

`ptr` : | pointer to a idmef_file_t object.
`fstype` : | pointer to a idmef_file_fstype_t object.

### idmef_file_new_fstype ()

    int                 idmef_file_new_fstype               (idmef_file_t *ptr,
                                                             idmef_file_fstype_t **ret);

Create a new fstype object, children of idmef_file_t. If `ptr` already contain a idmef_file_fstype_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created idmef_file_fstype_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_file_get_file_type ()

    prelude_string_t *  idmef_file_get_file_type            (idmef_file_t *ptr);

`ptr` : |
Returns : |

### idmef_file_set_file_type ()

    void                idmef_file_set_file_type            (idmef_file_t *ptr,
                                                             prelude_string_t *file_type);

Set `file_type` object as a children of `ptr`. if `ptr` already contain an `file_type` object, then it is destroyed, and updated to point to the provided `file_type` object.

`ptr` : | pointer to a idmef_file_t object.
`file_type` : | pointer to a prelude_string_t object.

### idmef_file_new_file_type ()

    int                 idmef_file_new_file_type            (idmef_file_t *ptr,
                                                             prelude_string_t **ret);

Create a new file_type object, children of idmef_file_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_file_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_linkage_category_t

    typedef enum {
            IDMEF_LINKAGE_CATEGORY_ERROR = -1,
            IDMEF_LINKAGE_CATEGORY_HARD_LINK = 1,
            IDMEF_LINKAGE_CATEGORY_MOUNT_POINT = 2,
            IDMEF_LINKAGE_CATEGORY_REPARSE_POINT = 3,
            IDMEF_LINKAGE_CATEGORY_SHORTCUT = 4,
            IDMEF_LINKAGE_CATEGORY_STREAM = 5,
            IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK = 6
    } idmef_linkage_category_t;

### idmef_linkage_category_to_numeric ()

    idmef_linkage_category_t  idmef_linkage_category_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_linkage_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_linkage_category_to_string ()

    const char *        idmef_linkage_category_to_string    (idmef_linkage_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_linkage_category_t value.

`val` : | an enumeration value for idmef_linkage_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_linkage_new ()

    int                 idmef_linkage_new                   (idmef_linkage_t **ret);

Create a new idmef_linkage_t object.

`ret` : | Pointer where to store the created idmef_linkage_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_linkage_copy ()

    int                 idmef_linkage_copy                  (const idmef_linkage_t *src,
                                                             idmef_linkage_t *dst);

Copy a new idmef_linkage_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_linkage_clone ()

    int                 idmef_linkage_clone                 (idmef_linkage_t *src,
                                                             idmef_linkage_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_linkage_ref ()

    idmef_linkage_t *   idmef_linkage_ref                   (idmef_linkage_t *linkage);

Increase `linkage` reference count, so that it can be referenced multiple time.

`linkage` : | pointer to a idmef_linkage_t object.
Returns : | a pointer to `linkage`.

### idmef_linkage_destroy ()

    void                idmef_linkage_destroy               (idmef_linkage_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_linkage_t object.

### idmef_linkage_get_category ()

    idmef_linkage_category_t  idmef_linkage_get_category    (idmef_linkage_t *ptr);

Get category children of the idmef_linkage_t object.

`ptr` : | pointer to a idmef_linkage_t object.
Returns : | a pointer to a idmef_linkage_category_t object, or NULL if the children object is not set.

### idmef_linkage_set_category ()

    void                idmef_linkage_set_category          (idmef_linkage_t *ptr,
                                                             idmef_linkage_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_linkage_t object.
`category` : | pointer to a idmef_linkage_category_t object.

### idmef_linkage_new_category ()

    int                 idmef_linkage_new_category          (idmef_linkage_t *ptr,
                                                             idmef_linkage_category_t **ret);

Create a new category object, children of idmef_linkage_t. If `ptr` already contain a idmef_linkage_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_linkage_t object.
`ret` : | pointer to an address where to store the created idmef_linkage_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_linkage_get_name ()

    prelude_string_t *  idmef_linkage_get_name              (idmef_linkage_t *ptr);

`ptr` : |
Returns : |

### idmef_linkage_set_name ()

    void                idmef_linkage_set_name              (idmef_linkage_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_linkage_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_linkage_new_name ()

    int                 idmef_linkage_new_name              (idmef_linkage_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_linkage_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_linkage_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_linkage_get_path ()

    prelude_string_t *  idmef_linkage_get_path              (idmef_linkage_t *ptr);

`ptr` : |
Returns : |

### idmef_linkage_set_path ()

    void                idmef_linkage_set_path              (idmef_linkage_t *ptr,
                                                             prelude_string_t *path);

Set `path` object as a children of `ptr`. if `ptr` already contain an `path` object, then it is destroyed, and updated to point to the provided `path` object.

`ptr` : | pointer to a idmef_linkage_t object.
`path` : | pointer to a prelude_string_t object.

### idmef_linkage_new_path ()

    int                 idmef_linkage_new_path              (idmef_linkage_t *ptr,
                                                             prelude_string_t **ret);

Create a new path object, children of idmef_linkage_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_linkage_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_linkage_get_file ()

    idmef_file_t *      idmef_linkage_get_file              (idmef_linkage_t *ptr);

`ptr` : |
Returns : |

### idmef_linkage_set_file ()

    void                idmef_linkage_set_file              (idmef_linkage_t *ptr,
                                                             idmef_file_t *file);

Set `file` object as a children of `ptr`. if `ptr` already contain an `file` object, then it is destroyed, and updated to point to the provided `file` object.

`ptr` : | pointer to a idmef_linkage_t object.
`file` : | pointer to a idmef_file_t object.

### idmef_linkage_new_file ()

    int                 idmef_linkage_new_file              (idmef_linkage_t *ptr,
                                                             idmef_file_t **ret);

Create a new file object, children of idmef_linkage_t. If `ptr` already contain a idmef_file_t object, then it is destroyed.

`ptr` : | pointer to a idmef_linkage_t object.
`ret` : | pointer to an address where to store the created idmef_file_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_target_decoy_t

    typedef enum {
            IDMEF_TARGET_DECOY_ERROR = -1,
            IDMEF_TARGET_DECOY_UNKNOWN = 0,
            IDMEF_TARGET_DECOY_YES = 1,
            IDMEF_TARGET_DECOY_NO = 2
    } idmef_target_decoy_t;

### idmef_target_decoy_to_numeric ()

    idmef_target_decoy_t  idmef_target_decoy_to_numeric     (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_target_decoy_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_target_decoy_to_string ()

    const char *        idmef_target_decoy_to_string        (idmef_target_decoy_t val);

Return the IDMEF string equivalent of `val` provided idmef_target_decoy_t value.

`val` : | an enumeration value for idmef_target_decoy_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_target_t

    typedef struct idmef_target idmef_target_t;

### idmef_target_new ()

    int                 idmef_target_new                    (idmef_target_t **ret);

Create a new idmef_target_t object.

`ret` : | Pointer where to store the created idmef_target_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_target_copy ()

    int                 idmef_target_copy                   (const idmef_target_t *src,
                                                             idmef_target_t *dst);

Copy a new idmef_target_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_target_clone ()

    int                 idmef_target_clone                  (idmef_target_t *src,
                                                             idmef_target_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_target_ref ()

    idmef_target_t *    idmef_target_ref                    (idmef_target_t *target);

Increase `target` reference count, so that it can be referenced multiple time.

`target` : | pointer to a idmef_target_t object.
Returns : | a pointer to `target`.

### idmef_target_destroy ()

    void                idmef_target_destroy                (idmef_target_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_target_t object.

### idmef_target_get_ident ()

    prelude_string_t *  idmef_target_get_ident              (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_ident ()

    void                idmef_target_set_ident              (idmef_target_t *ptr,
                                                             prelude_string_t *ident);

Set `ident` object as a children of `ptr`. if `ptr` already contain an `ident` object, then it is destroyed, and updated to point to the provided `ident` object.

`ptr` : | pointer to a idmef_target_t object.
`ident` : | pointer to a prelude_string_t object.

### idmef_target_new_ident ()

    int                 idmef_target_new_ident              (idmef_target_t *ptr,
                                                             prelude_string_t **ret);

Create a new ident object, children of idmef_target_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_decoy ()

    idmef_target_decoy_t  idmef_target_get_decoy            (idmef_target_t *ptr);

Get decoy children of the idmef_target_t object.

`ptr` : | pointer to a idmef_target_t object.
Returns : | a pointer to a idmef_target_decoy_t object, or NULL if the children object is not set.

### idmef_target_set_decoy ()

    void                idmef_target_set_decoy              (idmef_target_t *ptr,
                                                             idmef_target_decoy_t decoy);

Set `decoy` object as a children of `ptr`. if `ptr` already contain an `decoy` object, then it is destroyed, and updated to point to the provided `decoy` object.

`ptr` : | pointer to a idmef_target_t object.
`decoy` : | pointer to a idmef_target_decoy_t object.

### idmef_target_new_decoy ()

    int                 idmef_target_new_decoy              (idmef_target_t *ptr,
                                                             idmef_target_decoy_t **ret);

Create a new decoy object, children of idmef_target_t. If `ptr` already contain a idmef_target_decoy_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_target_decoy_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_interface ()

    prelude_string_t *  idmef_target_get_interface          (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_interface ()

    void                idmef_target_set_interface          (idmef_target_t *ptr,
                                                             prelude_string_t *interface);

Set `interface` object as a children of `ptr`. if `ptr` already contain an `interface` object, then it is destroyed, and updated to point to the provided `interface` object.

`ptr` : | pointer to a idmef_target_t object.
`interface` : | pointer to a prelude_string_t object.

### idmef_target_new_interface ()

    int                 idmef_target_new_interface          (idmef_target_t *ptr,
                                                             prelude_string_t **ret);

Create a new interface object, children of idmef_target_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_node ()

    idmef_node_t *      idmef_target_get_node               (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_node ()

    void                idmef_target_set_node               (idmef_target_t *ptr,
                                                             idmef_node_t *node);

Set `node` object as a children of `ptr`. if `ptr` already contain an `node` object, then it is destroyed, and updated to point to the provided `node` object.

`ptr` : | pointer to a idmef_target_t object.
`node` : | pointer to a idmef_node_t object.

### idmef_target_new_node ()

    int                 idmef_target_new_node               (idmef_target_t *ptr,
                                                             idmef_node_t **ret);

Create a new node object, children of idmef_target_t. If `ptr` already contain a idmef_node_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_node_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_user ()

    idmef_user_t *      idmef_target_get_user               (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_user ()

    void                idmef_target_set_user               (idmef_target_t *ptr,
                                                             idmef_user_t *user);

Set `user` object as a children of `ptr`. if `ptr` already contain an `user` object, then it is destroyed, and updated to point to the provided `user` object.

`ptr` : | pointer to a idmef_target_t object.
`user` : | pointer to a idmef_user_t object.

### idmef_target_new_user ()

    int                 idmef_target_new_user               (idmef_target_t *ptr,
                                                             idmef_user_t **ret);

Create a new user object, children of idmef_target_t. If `ptr` already contain a idmef_user_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_user_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_process ()

    idmef_process_t *   idmef_target_get_process            (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_process ()

    void                idmef_target_set_process            (idmef_target_t *ptr,
                                                             idmef_process_t *process);

Set `process` object as a children of `ptr`. if `ptr` already contain an `process` object, then it is destroyed, and updated to point to the provided `process` object.

`ptr` : | pointer to a idmef_target_t object.
`process` : | pointer to a idmef_process_t object.

### idmef_target_new_process ()

    int                 idmef_target_new_process            (idmef_target_t *ptr,
                                                             idmef_process_t **ret);

Create a new process object, children of idmef_target_t. If `ptr` already contain a idmef_process_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_process_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_service ()

    idmef_service_t *   idmef_target_get_service            (idmef_target_t *ptr);

`ptr` : |
Returns : |

### idmef_target_set_service ()

    void                idmef_target_set_service            (idmef_target_t *ptr,
                                                             idmef_service_t *service);

Set `service` object as a children of `ptr`. if `ptr` already contain an `service` object, then it is destroyed, and updated to point to the provided `service` object.

`ptr` : | pointer to a idmef_target_t object.
`service` : | pointer to a idmef_service_t object.

### idmef_target_new_service ()

    int                 idmef_target_new_service            (idmef_target_t *ptr,
                                                             idmef_service_t **ret);

Create a new service object, children of idmef_target_t. If `ptr` already contain a idmef_service_t object, then it is destroyed.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_service_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_target_get_next_file ()

    idmef_file_t *      idmef_target_get_next_file          (idmef_target_t *target,
                                                             idmef_file_t *file_cur);

Get the next idmef_file_t object listed in `ptr`. When iterating over the idmef_file_t object listed in `ptr`, `object` should be set to the latest returned idmef_file_t object.

`target` : | pointer to a idmef_target_t object.
`file_cur` : | pointer to a idmef_file_t object.
Returns : | the next idmef_file_t in the list.

### idmef_target_set_file ()

    void                idmef_target_set_file               (idmef_target_t *ptr,
                                                             idmef_file_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_file_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_target_t object.
`object` : | pointer to a idmef_file_t object.
`pos` : | Position in the list.

### idmef_target_new_file ()

    int                 idmef_target_new_file               (idmef_target_t *ptr,
                                                             idmef_file_t **ret,
                                                             int pos);

Create a new idmef_file_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_file_t object. The created idmef_file_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_target_t object.
`ret` : | pointer to an address where to store the created idmef_file_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_t

    typedef struct idmef_analyzer idmef_analyzer_t;

### idmef_analyzer_new ()

    int                 idmef_analyzer_new                  (idmef_analyzer_t **ret);

Create a new idmef_analyzer_t object.

`ret` : | Pointer where to store the created idmef_analyzer_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_analyzer_copy ()

    int                 idmef_analyzer_copy                 (const idmef_analyzer_t *src,
                                                             idmef_analyzer_t *dst);

Copy a new idmef_analyzer_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_analyzer_clone ()

    int                 idmef_analyzer_clone                (idmef_analyzer_t *src,
                                                             idmef_analyzer_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_analyzer_ref ()

    idmef_analyzer_t *  idmef_analyzer_ref                  (idmef_analyzer_t *analyzer);

Increase `analyzer` reference count, so that it can be referenced multiple time.

`analyzer` : | pointer to a idmef_analyzer_t object.
Returns : | a pointer to `analyzer`.

### idmef_analyzer_destroy ()

    void                idmef_analyzer_destroy              (idmef_analyzer_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_analyzer_t object.

### idmef_analyzer_get_analyzerid ()

    prelude_string_t *  idmef_analyzer_get_analyzerid       (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_analyzerid ()

    void                idmef_analyzer_set_analyzerid       (idmef_analyzer_t *ptr,
                                                             prelude_string_t *analyzerid);

Set `analyzerid` object as a children of `ptr`. if `ptr` already contain an `analyzerid` object, then it is destroyed, and updated to point to the provided `analyzerid` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`analyzerid` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_analyzerid ()

    int                 idmef_analyzer_new_analyzerid       (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new analyzerid object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_name ()

    prelude_string_t *  idmef_analyzer_get_name             (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_name ()

    void                idmef_analyzer_set_name             (idmef_analyzer_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_name ()

    int                 idmef_analyzer_new_name             (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_manufacturer ()

    prelude_string_t *  idmef_analyzer_get_manufacturer     (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_manufacturer ()

    void                idmef_analyzer_set_manufacturer     (idmef_analyzer_t *ptr,
                                                             prelude_string_t *manufacturer);

Set `manufacturer` object as a children of `ptr`. if `ptr` already contain an `manufacturer` object, then it is destroyed, and updated to point to the provided `manufacturer` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`manufacturer` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_manufacturer ()

    int                 idmef_analyzer_new_manufacturer     (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new manufacturer object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_model ()

    prelude_string_t *  idmef_analyzer_get_model            (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_model ()

    void                idmef_analyzer_set_model            (idmef_analyzer_t *ptr,
                                                             prelude_string_t *model);

Set `model` object as a children of `ptr`. if `ptr` already contain an `model` object, then it is destroyed, and updated to point to the provided `model` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`model` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_model ()

    int                 idmef_analyzer_new_model            (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new model object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_version ()

    prelude_string_t *  idmef_analyzer_get_version          (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_version ()

    void                idmef_analyzer_set_version          (idmef_analyzer_t *ptr,
                                                             prelude_string_t *version);

Set `version` object as a children of `ptr`. if `ptr` already contain an `version` object, then it is destroyed, and updated to point to the provided `version` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`version` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_version ()

    int                 idmef_analyzer_new_version          (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new version object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_class ()

    prelude_string_t *  idmef_analyzer_get_class            (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_class ()

    void                idmef_analyzer_set_class            (idmef_analyzer_t *ptr,
                                                             prelude_string_t *class_str);

Set `class_str` object as a children of `ptr`. if `ptr` already contain an `class_str` object, then it is destroyed, and updated to point to the provided `class_str` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`class_str` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_class ()

    int                 idmef_analyzer_new_class            (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new class object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_ostype ()

    prelude_string_t *  idmef_analyzer_get_ostype           (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_ostype ()

    void                idmef_analyzer_set_ostype           (idmef_analyzer_t *ptr,
                                                             prelude_string_t *ostype);

Set `ostype` object as a children of `ptr`. if `ptr` already contain an `ostype` object, then it is destroyed, and updated to point to the provided `ostype` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`ostype` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_ostype ()

    int                 idmef_analyzer_new_ostype           (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new ostype object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_osversion ()

    prelude_string_t *  idmef_analyzer_get_osversion        (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_osversion ()

    void                idmef_analyzer_set_osversion        (idmef_analyzer_t *ptr,
                                                             prelude_string_t *osversion);

Set `osversion` object as a children of `ptr`. if `ptr` already contain an `osversion` object, then it is destroyed, and updated to point to the provided `osversion` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`osversion` : | pointer to a prelude_string_t object.

### idmef_analyzer_new_osversion ()

    int                 idmef_analyzer_new_osversion        (idmef_analyzer_t *ptr,
                                                             prelude_string_t **ret);

Create a new osversion object, children of idmef_analyzer_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_node ()

    idmef_node_t *      idmef_analyzer_get_node             (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_node ()

    void                idmef_analyzer_set_node             (idmef_analyzer_t *ptr,
                                                             idmef_node_t *node);

Set `node` object as a children of `ptr`. if `ptr` already contain an `node` object, then it is destroyed, and updated to point to the provided `node` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`node` : | pointer to a idmef_node_t object.

### idmef_analyzer_new_node ()

    int                 idmef_analyzer_new_node             (idmef_analyzer_t *ptr,
                                                             idmef_node_t **ret);

Create a new node object, children of idmef_analyzer_t. If `ptr` already contain a idmef_node_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created idmef_node_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_analyzer_get_process ()

    idmef_process_t *   idmef_analyzer_get_process          (idmef_analyzer_t *ptr);

`ptr` : |
Returns : |

### idmef_analyzer_set_process ()

    void                idmef_analyzer_set_process          (idmef_analyzer_t *ptr,
                                                             idmef_process_t *process);

Set `process` object as a children of `ptr`. if `ptr` already contain an `process` object, then it is destroyed, and updated to point to the provided `process` object.

`ptr` : | pointer to a idmef_analyzer_t object.
`process` : | pointer to a idmef_process_t object.

### idmef_analyzer_new_process ()

    int                 idmef_analyzer_new_process          (idmef_analyzer_t *ptr,
                                                             idmef_process_t **ret);

Create a new process object, children of idmef_analyzer_t. If `ptr` already contain a idmef_process_t object, then it is destroyed.

`ptr` : | pointer to a idmef_analyzer_t object.
`ret` : | pointer to an address where to store the created idmef_process_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alertident_t

    typedef struct idmef_alertident idmef_alertident_t;

### idmef_alertident_new ()

    int                 idmef_alertident_new                (idmef_alertident_t **ret);

Create a new idmef_alertident_t object.

`ret` : | Pointer where to store the created idmef_alertident_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alertident_copy ()

    int                 idmef_alertident_copy               (const idmef_alertident_t *src,
                                                             idmef_alertident_t *dst);

Copy a new idmef_alertident_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alertident_clone ()

    int                 idmef_alertident_clone              (idmef_alertident_t *src,
                                                             idmef_alertident_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alertident_ref ()

    idmef_alertident_t * idmef_alertident_ref               (idmef_alertident_t *alertident);

Increase `alertident` reference count, so that it can be referenced multiple time.

`alertident` : | pointer to a idmef_alertident_t object.
Returns : | a pointer to `alertident`.

### idmef_alertident_destroy ()

    void                idmef_alertident_destroy            (idmef_alertident_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_alertident_t object.

### idmef_alertident_get_alertident ()

    prelude_string_t *  idmef_alertident_get_alertident     (idmef_alertident_t *ptr);

`ptr` : |
Returns : |

### idmef_alertident_set_alertident ()

    void                idmef_alertident_set_alertident     (idmef_alertident_t *ptr,
                                                             prelude_string_t *alertident);

Set `alertident` object as a children of `ptr`. if `ptr` already contain an `alertident` object, then it is destroyed, and updated to point to the provided `alertident` object.

`ptr` : | pointer to a idmef_alertident_t object.
`alertident` : | pointer to a prelude_string_t object.

### idmef_alertident_new_alertident ()

    int                 idmef_alertident_new_alertident     (idmef_alertident_t *ptr,
                                                             prelude_string_t **ret);

Create a new alertident object, children of idmef_alertident_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alertident_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alertident_get_analyzerid ()

    prelude_string_t *  idmef_alertident_get_analyzerid     (idmef_alertident_t *ptr);

`ptr` : |
Returns : |

### idmef_alertident_set_analyzerid ()

    void                idmef_alertident_set_analyzerid     (idmef_alertident_t *ptr,
                                                             prelude_string_t *analyzerid);

Set `analyzerid` object as a children of `ptr`. if `ptr` already contain an `analyzerid` object, then it is destroyed, and updated to point to the provided `analyzerid` object.

`ptr` : | pointer to a idmef_alertident_t object.
`analyzerid` : | pointer to a prelude_string_t object.

### idmef_alertident_new_analyzerid ()

    int                 idmef_alertident_new_analyzerid     (idmef_alertident_t *ptr,
                                                             prelude_string_t **ret);

Create a new analyzerid object, children of idmef_alertident_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alertident_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_impact_severity_t

    typedef enum {
            IDMEF_IMPACT_SEVERITY_ERROR = -1,
            IDMEF_IMPACT_SEVERITY_INFO = 1,
            IDMEF_IMPACT_SEVERITY_LOW = 2,
            IDMEF_IMPACT_SEVERITY_MEDIUM = 3,
            IDMEF_IMPACT_SEVERITY_HIGH = 4
    } idmef_impact_severity_t;

### idmef_impact_severity_to_numeric ()

    idmef_impact_severity_t  idmef_impact_severity_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_impact_severity_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_impact_severity_to_string ()

    const char *        idmef_impact_severity_to_string     (idmef_impact_severity_t val);

Return the IDMEF string equivalent of `val` provided idmef_impact_severity_t value.

`val` : | an enumeration value for idmef_impact_severity_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### enum idmef_impact_completion_t

    typedef enum {
            IDMEF_IMPACT_COMPLETION_ERROR = -1,
            IDMEF_IMPACT_COMPLETION_FAILED = 1,
            IDMEF_IMPACT_COMPLETION_SUCCEEDED = 2
    } idmef_impact_completion_t;

### idmef_impact_completion_to_numeric ()

    idmef_impact_completion_t  idmef_impact_completion_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_impact_completion_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_impact_completion_to_string ()

    const char *        idmef_impact_completion_to_string   (idmef_impact_completion_t val);

Return the IDMEF string equivalent of `val` provided idmef_impact_completion_t value.

`val` : | an enumeration value for idmef_impact_completion_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### enum idmef_impact_type_t

    typedef enum {
            IDMEF_IMPACT_TYPE_ERROR = -1,
            IDMEF_IMPACT_TYPE_OTHER = 0,
            IDMEF_IMPACT_TYPE_ADMIN = 1,
            IDMEF_IMPACT_TYPE_DOS = 2,
            IDMEF_IMPACT_TYPE_FILE = 3,
            IDMEF_IMPACT_TYPE_RECON = 4,
            IDMEF_IMPACT_TYPE_USER = 5
    } idmef_impact_type_t;

### idmef_impact_type_to_numeric ()

    idmef_impact_type_t  idmef_impact_type_to_numeric       (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_impact_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_impact_type_to_string ()

    const char *        idmef_impact_type_to_string         (idmef_impact_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_impact_type_t value.

`val` : | an enumeration value for idmef_impact_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_impact_t

    typedef struct idmef_impact idmef_impact_t;

### idmef_impact_new ()

    int                 idmef_impact_new                    (idmef_impact_t **ret);

Create a new idmef_impact_t object.

`ret` : | Pointer where to store the created idmef_impact_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_impact_copy ()

    int                 idmef_impact_copy                   (const idmef_impact_t *src,
                                                             idmef_impact_t *dst);

Copy a new idmef_impact_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_impact_clone ()

    int                 idmef_impact_clone                  (idmef_impact_t *src,
                                                             idmef_impact_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_impact_ref ()

    idmef_impact_t *    idmef_impact_ref                    (idmef_impact_t *impact);

Increase `impact` reference count, so that it can be referenced multiple time.

`impact` : | pointer to a idmef_impact_t object.
Returns : | a pointer to `impact`.

### idmef_impact_destroy ()

    void                idmef_impact_destroy                (idmef_impact_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_impact_t object.

### idmef_impact_unset_severity ()

    void                idmef_impact_unset_severity         (idmef_impact_t *ptr);

`ptr` : |

### idmef_impact_get_severity ()

    idmef_impact_severity_t * idmef_impact_get_severity     (idmef_impact_t *ptr);

`ptr` : |
Returns : |

### idmef_impact_set_severity ()

    void                idmef_impact_set_severity           (idmef_impact_t *ptr,
                                                             idmef_impact_severity_t severity);

Set `severity` object as a children of `ptr`. if `ptr` already contain an `severity` object, then it is destroyed, and updated to point to the provided `severity` object.

`ptr` : | pointer to a idmef_impact_t object.
`severity` : | pointer to a idmef_impact_severity_t object.

### idmef_impact_new_severity ()

    int                 idmef_impact_new_severity           (idmef_impact_t *ptr,
                                                             idmef_impact_severity_t **ret);

Create a new severity object, children of idmef_impact_t. If `ptr` already contain a idmef_impact_severity_t object, then it is destroyed.

`ptr` : | pointer to a idmef_impact_t object.
`ret` : | pointer to an address where to store the created idmef_impact_severity_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_impact_unset_completion ()

    void                idmef_impact_unset_completion       (idmef_impact_t *ptr);

`ptr` : |

### idmef_impact_get_completion ()

    idmef_impact_completion_t * idmef_impact_get_completion (idmef_impact_t *ptr);

`ptr` : |
Returns : |

### idmef_impact_set_completion ()

    void                idmef_impact_set_completion         (idmef_impact_t *ptr,
                                                             idmef_impact_completion_t completion);

Set `completion` object as a children of `ptr`. if `ptr` already contain an `completion` object, then it is destroyed, and updated to point to the provided `completion` object.

`ptr` : | pointer to a idmef_impact_t object.
`completion` : | pointer to a idmef_impact_completion_t object.

### idmef_impact_new_completion ()

    int                 idmef_impact_new_completion         (idmef_impact_t *ptr,
                                                             idmef_impact_completion_t **ret);

Create a new completion object, children of idmef_impact_t. If `ptr` already contain a idmef_impact_completion_t object, then it is destroyed.

`ptr` : | pointer to a idmef_impact_t object.
`ret` : | pointer to an address where to store the created idmef_impact_completion_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_impact_get_type ()

    idmef_impact_type_t  idmef_impact_get_type              (idmef_impact_t *ptr);

Get type children of the idmef_impact_t object.

`ptr` : | pointer to a idmef_impact_t object.
Returns : | a pointer to a idmef_impact_type_t object, or NULL if the children object is not set.

### idmef_impact_set_type ()

    void                idmef_impact_set_type               (idmef_impact_t *ptr,
                                                             idmef_impact_type_t type);

Set `type` object as a children of `ptr`. if `ptr` already contain an `type` object, then it is destroyed, and updated to point to the provided `type` object.

`ptr` : | pointer to a idmef_impact_t object.
`type` : | pointer to a idmef_impact_type_t object.

### idmef_impact_new_type ()

    int                 idmef_impact_new_type               (idmef_impact_t *ptr,
                                                             idmef_impact_type_t **ret);

Create a new type object, children of idmef_impact_t. If `ptr` already contain a idmef_impact_type_t object, then it is destroyed.

`ptr` : | pointer to a idmef_impact_t object.
`ret` : | pointer to an address where to store the created idmef_impact_type_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_impact_get_description ()

    prelude_string_t *  idmef_impact_get_description        (idmef_impact_t *ptr);

`ptr` : |
Returns : |

### idmef_impact_set_description ()

    void                idmef_impact_set_description        (idmef_impact_t *ptr,
                                                             prelude_string_t *description);

Set `description` object as a children of `ptr`. if `ptr` already contain an `description` object, then it is destroyed, and updated to point to the provided `description` object.

`ptr` : | pointer to a idmef_impact_t object.
`description` : | pointer to a prelude_string_t object.

### idmef_impact_new_description ()

    int                 idmef_impact_new_description        (idmef_impact_t *ptr,
                                                             prelude_string_t **ret);

Create a new description object, children of idmef_impact_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_impact_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_action_category_t

    typedef enum {
            IDMEF_ACTION_CATEGORY_ERROR = -1,
            IDMEF_ACTION_CATEGORY_OTHER = 0,
            IDMEF_ACTION_CATEGORY_BLOCK_INSTALLED = 1,
            IDMEF_ACTION_CATEGORY_NOTIFICATION_SENT = 2,
            IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE = 3
    } idmef_action_category_t;

### idmef_action_category_to_numeric ()

    idmef_action_category_t  idmef_action_category_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_action_category_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_action_category_to_string ()

    const char *        idmef_action_category_to_string     (idmef_action_category_t val);

Return the IDMEF string equivalent of `val` provided idmef_action_category_t value.

`val` : | an enumeration value for idmef_action_category_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_action_t

    typedef struct idmef_action idmef_action_t;

### idmef_action_new ()

    int                 idmef_action_new                    (idmef_action_t **ret);

Create a new idmef_action_t object.

`ret` : | Pointer where to store the created idmef_action_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_action_copy ()

    int                 idmef_action_copy                   (const idmef_action_t *src,
                                                             idmef_action_t *dst);

Copy a new idmef_action_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_action_clone ()

    int                 idmef_action_clone                  (idmef_action_t *src,
                                                             idmef_action_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_action_ref ()

    idmef_action_t *    idmef_action_ref                    (idmef_action_t *action);

Increase `action` reference count, so that it can be referenced multiple time.

`action` : | pointer to a idmef_action_t object.
Returns : | a pointer to `action`.

### idmef_action_destroy ()

    void                idmef_action_destroy                (idmef_action_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_action_t object.

### idmef_action_get_category ()

    idmef_action_category_t  idmef_action_get_category      (idmef_action_t *ptr);

Get category children of the idmef_action_t object.

`ptr` : | pointer to a idmef_action_t object.
Returns : | a pointer to a idmef_action_category_t object, or NULL if the children object is not set.

### idmef_action_set_category ()

    void                idmef_action_set_category           (idmef_action_t *ptr,
                                                             idmef_action_category_t category);

Set `category` object as a children of `ptr`. if `ptr` already contain an `category` object, then it is destroyed, and updated to point to the provided `category` object.

`ptr` : | pointer to a idmef_action_t object.
`category` : | pointer to a idmef_action_category_t object.

### idmef_action_new_category ()

    int                 idmef_action_new_category           (idmef_action_t *ptr,
                                                             idmef_action_category_t **ret);

Create a new category object, children of idmef_action_t. If `ptr` already contain a idmef_action_category_t object, then it is destroyed.

`ptr` : | pointer to a idmef_action_t object.
`ret` : | pointer to an address where to store the created idmef_action_category_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_action_get_description ()

    prelude_string_t *  idmef_action_get_description        (idmef_action_t *ptr);

`ptr` : |
Returns : |

### idmef_action_set_description ()

    void                idmef_action_set_description        (idmef_action_t *ptr,
                                                             prelude_string_t *description);

Set `description` object as a children of `ptr`. if `ptr` already contain an `description` object, then it is destroyed, and updated to point to the provided `description` object.

`ptr` : | pointer to a idmef_action_t object.
`description` : | pointer to a prelude_string_t object.

### idmef_action_new_description ()

    int                 idmef_action_new_description        (idmef_action_t *ptr,
                                                             prelude_string_t **ret);

Create a new description object, children of idmef_action_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_action_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_confidence_rating_t

    typedef enum {
            IDMEF_CONFIDENCE_RATING_ERROR = -1,
            IDMEF_CONFIDENCE_RATING_NUMERIC = 0,
            IDMEF_CONFIDENCE_RATING_LOW = 1,
            IDMEF_CONFIDENCE_RATING_MEDIUM = 2,
            IDMEF_CONFIDENCE_RATING_HIGH = 3
    } idmef_confidence_rating_t;

### idmef_confidence_rating_to_numeric ()

    idmef_confidence_rating_t  idmef_confidence_rating_to_numeric
                                                            (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_confidence_rating_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_confidence_rating_to_string ()

    const char *        idmef_confidence_rating_to_string   (idmef_confidence_rating_t val);

Return the IDMEF string equivalent of `val` provided idmef_confidence_rating_t value.

`val` : | an enumeration value for idmef_confidence_rating_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_confidence_t

    typedef struct idmef_confidence idmef_confidence_t;

### idmef_confidence_new ()

    int                 idmef_confidence_new                (idmef_confidence_t **ret);

Create a new idmef_confidence_t object.

`ret` : | Pointer where to store the created idmef_confidence_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_confidence_copy ()

    int                 idmef_confidence_copy               (const idmef_confidence_t *src,
                                                             idmef_confidence_t *dst);

Copy a new idmef_confidence_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_confidence_clone ()

    int                 idmef_confidence_clone              (idmef_confidence_t *src,
                                                             idmef_confidence_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_confidence_ref ()

    idmef_confidence_t * idmef_confidence_ref               (idmef_confidence_t *confidence);

Increase `confidence` reference count, so that it can be referenced multiple time.

`confidence` : | pointer to a idmef_confidence_t object.
Returns : | a pointer to `confidence`.

### idmef_confidence_destroy ()

    void                idmef_confidence_destroy            (idmef_confidence_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_confidence_t object.

### idmef_confidence_get_rating ()

    idmef_confidence_rating_t  idmef_confidence_get_rating  (idmef_confidence_t *ptr);

Get rating children of the idmef_confidence_t object.

`ptr` : | pointer to a idmef_confidence_t object.
Returns : | a pointer to a idmef_confidence_rating_t object, or NULL if the children object is not set.

### idmef_confidence_set_rating ()

    void                idmef_confidence_set_rating         (idmef_confidence_t *ptr,
                                                             idmef_confidence_rating_t rating);

Set `rating` object as a children of `ptr`. if `ptr` already contain an `rating` object, then it is destroyed, and updated to point to the provided `rating` object.

`ptr` : | pointer to a idmef_confidence_t object.
`rating` : | pointer to a idmef_confidence_rating_t object.

### idmef_confidence_new_rating ()

    int                 idmef_confidence_new_rating         (idmef_confidence_t *ptr,
                                                             idmef_confidence_rating_t **ret);

Create a new rating object, children of idmef_confidence_t. If `ptr` already contain a idmef_confidence_rating_t object, then it is destroyed.

`ptr` : | pointer to a idmef_confidence_t object.
`ret` : | pointer to an address where to store the created idmef_confidence_rating_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_confidence_get_confidence ()

    float               idmef_confidence_get_confidence     (idmef_confidence_t *ptr);

Get confidence children of the idmef_confidence_t object.

`ptr` : | pointer to a idmef_confidence_t object.
Returns : | a pointer to a float object, or NULL if the children object is not set.

### idmef_confidence_set_confidence ()

    void                idmef_confidence_set_confidence     (idmef_confidence_t *ptr,
                                                             float confidence);

Set `confidence` object as a children of `ptr`. if `ptr` already contain an `confidence` object, then it is destroyed, and updated to point to the provided `confidence` object.

`ptr` : | pointer to a idmef_confidence_t object.
`confidence` : | pointer to a float object.

### idmef_confidence_new_confidence ()

    int                 idmef_confidence_new_confidence     (idmef_confidence_t *ptr,
                                                             float **ret);

Create a new confidence object, children of idmef_confidence_t. If `ptr` already contain a float object, then it is destroyed.

`ptr` : | pointer to a idmef_confidence_t object.
`ret` : | pointer to an address where to store the created float object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_assessment_t

    typedef struct idmef_assessment idmef_assessment_t;

### idmef_assessment_new ()

    int                 idmef_assessment_new                (idmef_assessment_t **ret);

Create a new idmef_assessment_t object.

`ret` : | Pointer where to store the created idmef_assessment_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_assessment_copy ()

    int                 idmef_assessment_copy               (const idmef_assessment_t *src,
                                                             idmef_assessment_t *dst);

Copy a new idmef_assessment_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_assessment_clone ()

    int                 idmef_assessment_clone              (idmef_assessment_t *src,
                                                             idmef_assessment_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_assessment_ref ()

    idmef_assessment_t * idmef_assessment_ref               (idmef_assessment_t *assessment);

Increase `assessment` reference count, so that it can be referenced multiple time.

`assessment` : | pointer to a idmef_assessment_t object.
Returns : | a pointer to `assessment`.

### idmef_assessment_destroy ()

    void                idmef_assessment_destroy            (idmef_assessment_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_assessment_t object.

### idmef_assessment_get_impact ()

    idmef_impact_t *    idmef_assessment_get_impact         (idmef_assessment_t *ptr);

`ptr` : |
Returns : |

### idmef_assessment_set_impact ()

    void                idmef_assessment_set_impact         (idmef_assessment_t *ptr,
                                                             idmef_impact_t *impact);

Set `impact` object as a children of `ptr`. if `ptr` already contain an `impact` object, then it is destroyed, and updated to point to the provided `impact` object.

`ptr` : | pointer to a idmef_assessment_t object.
`impact` : | pointer to a idmef_impact_t object.

### idmef_assessment_new_impact ()

    int                 idmef_assessment_new_impact         (idmef_assessment_t *ptr,
                                                             idmef_impact_t **ret);

Create a new impact object, children of idmef_assessment_t. If `ptr` already contain a idmef_impact_t object, then it is destroyed.

`ptr` : | pointer to a idmef_assessment_t object.
`ret` : | pointer to an address where to store the created idmef_impact_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_assessment_get_next_action ()

    idmef_action_t *    idmef_assessment_get_next_action    (idmef_assessment_t *assessment,
                                                             idmef_action_t *action_cur);

Get the next idmef_action_t object listed in `ptr`. When iterating over the idmef_action_t object listed in `ptr`, `object` should be set to the latest returned idmef_action_t object.

`assessment` : | pointer to a idmef_assessment_t object.
`action_cur` : | pointer to a idmef_action_t object.
Returns : | the next idmef_action_t in the list.

### idmef_assessment_set_action ()

    void                idmef_assessment_set_action         (idmef_assessment_t *ptr,
                                                             idmef_action_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_action_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_assessment_t object.
`object` : | pointer to a idmef_action_t object.
`pos` : | Position in the list.

### idmef_assessment_new_action ()

    int                 idmef_assessment_new_action         (idmef_assessment_t *ptr,
                                                             idmef_action_t **ret,
                                                             int pos);

Create a new idmef_action_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_action_t object. The created idmef_action_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_assessment_t object.
`ret` : | pointer to an address where to store the created idmef_action_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_assessment_get_confidence ()

    idmef_confidence_t * idmef_assessment_get_confidence    (idmef_assessment_t *ptr);

`ptr` : |
Returns : |

### idmef_assessment_set_confidence ()

    void                idmef_assessment_set_confidence     (idmef_assessment_t *ptr,
                                                             idmef_confidence_t *confidence);

Set `confidence` object as a children of `ptr`. if `ptr` already contain an `confidence` object, then it is destroyed, and updated to point to the provided `confidence` object.

`ptr` : | pointer to a idmef_assessment_t object.
`confidence` : | pointer to a idmef_confidence_t object.

### idmef_assessment_new_confidence ()

    int                 idmef_assessment_new_confidence     (idmef_assessment_t *ptr,
                                                             idmef_confidence_t **ret);

Create a new confidence object, children of idmef_assessment_t. If `ptr` already contain a idmef_confidence_t object, then it is destroyed.

`ptr` : | pointer to a idmef_assessment_t object.
`ret` : | pointer to an address where to store the created idmef_confidence_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_tool_alert_t

    typedef struct idmef_tool_alert idmef_tool_alert_t;

### idmef_tool_alert_new ()

    int                 idmef_tool_alert_new                (idmef_tool_alert_t **ret);

Create a new idmef_tool_alert_t object.

`ret` : | Pointer where to store the created idmef_tool_alert_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_tool_alert_copy ()

    int                 idmef_tool_alert_copy               (const idmef_tool_alert_t *src,
                                                             idmef_tool_alert_t *dst);

Copy a new idmef_tool_alert_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_tool_alert_clone ()

    int                 idmef_tool_alert_clone              (idmef_tool_alert_t *src,
                                                             idmef_tool_alert_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_tool_alert_ref ()

    idmef_tool_alert_t * idmef_tool_alert_ref               (idmef_tool_alert_t *tool_alert);

Increase `tool_alert` reference count, so that it can be referenced multiple time.

`tool_alert` : | pointer to a idmef_tool_alert_t object.
Returns : | a pointer to `tool_alert`.

### idmef_tool_alert_destroy ()

    void                idmef_tool_alert_destroy            (idmef_tool_alert_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_tool_alert_t object.

### idmef_tool_alert_get_name ()

    prelude_string_t *  idmef_tool_alert_get_name           (idmef_tool_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_tool_alert_set_name ()

    void                idmef_tool_alert_set_name           (idmef_tool_alert_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_tool_alert_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_tool_alert_new_name ()

    int                 idmef_tool_alert_new_name           (idmef_tool_alert_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_tool_alert_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_tool_alert_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_tool_alert_get_command ()

    prelude_string_t *  idmef_tool_alert_get_command        (idmef_tool_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_tool_alert_set_command ()

    void                idmef_tool_alert_set_command        (idmef_tool_alert_t *ptr,
                                                             prelude_string_t *command);

Set `command` object as a children of `ptr`. if `ptr` already contain an `command` object, then it is destroyed, and updated to point to the provided `command` object.

`ptr` : | pointer to a idmef_tool_alert_t object.
`command` : | pointer to a prelude_string_t object.

### idmef_tool_alert_new_command ()

    int                 idmef_tool_alert_new_command        (idmef_tool_alert_t *ptr,
                                                             prelude_string_t **ret);

Create a new command object, children of idmef_tool_alert_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_tool_alert_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_tool_alert_get_next_alertident ()

    idmef_alertident_t * idmef_tool_alert_get_next_alertident
                                                            (idmef_tool_alert_t *tool_alert,
                                                             idmef_alertident_t *alertident_cur);

Get the next idmef_alertident_t object listed in `ptr`. When iterating over the idmef_alertident_t object listed in `ptr`, `object` should be set to the latest returned idmef_alertident_t object.

`tool_alert` : | pointer to a idmef_tool_alert_t object.
`alertident_cur` : | pointer to a idmef_alertident_t object.
Returns : | the next idmef_alertident_t in the list.

### idmef_tool_alert_set_alertident ()

    void                idmef_tool_alert_set_alertident     (idmef_tool_alert_t *ptr,
                                                             idmef_alertident_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_alertident_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_tool_alert_t object.
`object` : | pointer to a idmef_alertident_t object.
`pos` : | Position in the list.

### idmef_tool_alert_new_alertident ()

    int                 idmef_tool_alert_new_alertident     (idmef_tool_alert_t *ptr,
                                                             idmef_alertident_t **ret,
                                                             int pos);

Create a new idmef_alertident_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_alertident_t object. The created idmef_alertident_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_tool_alert_t object.
`ret` : | pointer to an address where to store the created idmef_alertident_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_correlation_alert_t

    typedef struct idmef_correlation_alert idmef_correlation_alert_t;

### idmef_correlation_alert_new ()

    int                 idmef_correlation_alert_new         (idmef_correlation_alert_t **ret);

Create a new idmef_correlation_alert_t object.

`ret` : | Pointer where to store the created idmef_correlation_alert_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_correlation_alert_copy ()

    int                 idmef_correlation_alert_copy        (const idmef_correlation_alert_t *src,
                                                             idmef_correlation_alert_t *dst);

Copy a new idmef_correlation_alert_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_correlation_alert_clone ()

    int                 idmef_correlation_alert_clone       (idmef_correlation_alert_t *src,
                                                             idmef_correlation_alert_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_correlation_alert_ref ()

    idmef_correlation_alert_t * idmef_correlation_alert_ref (idmef_correlation_alert_t *correlation_alert);

Increase `correlation_alert` reference count, so that it can be referenced multiple time.

`correlation_alert` : | pointer to a idmef_correlation_alert_t object.
Returns : | a pointer to `correlation_alert`.

### idmef_correlation_alert_destroy ()

    void                idmef_correlation_alert_destroy     (idmef_correlation_alert_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_correlation_alert_t object.

### idmef_correlation_alert_get_name ()

    prelude_string_t *  idmef_correlation_alert_get_name    (idmef_correlation_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_correlation_alert_set_name ()

    void                idmef_correlation_alert_set_name    (idmef_correlation_alert_t *ptr,
                                                             prelude_string_t *name);

Set `name` object as a children of `ptr`. if `ptr` already contain an `name` object, then it is destroyed, and updated to point to the provided `name` object.

`ptr` : | pointer to a idmef_correlation_alert_t object.
`name` : | pointer to a prelude_string_t object.

### idmef_correlation_alert_new_name ()

    int                 idmef_correlation_alert_new_name    (idmef_correlation_alert_t *ptr,
                                                             prelude_string_t **ret);

Create a new name object, children of idmef_correlation_alert_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_correlation_alert_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_correlation_alert_get_next_alertident ()

    idmef_alertident_t * idmef_correlation_alert_get_next_alertident
                                                            (idmef_correlation_alert_t *correlation_alert,
                                                             idmef_alertident_t *alertident_cur);

Get the next idmef_alertident_t object listed in `ptr`. When iterating over the idmef_alertident_t object listed in `ptr`, `object` should be set to the latest returned idmef_alertident_t object.

`correlation_alert` : | pointer to a idmef_correlation_alert_t object.
`alertident_cur` : | pointer to a idmef_alertident_t object.
Returns : | the next idmef_alertident_t in the list.

### idmef_correlation_alert_set_alertident ()

    void                idmef_correlation_alert_set_alertident
                                                            (idmef_correlation_alert_t *ptr,
                                                             idmef_alertident_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_alertident_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_correlation_alert_t object.
`object` : | pointer to a idmef_alertident_t object.
`pos` : | Position in the list.

### idmef_correlation_alert_new_alertident ()

    int                 idmef_correlation_alert_new_alertident
                                                            (idmef_correlation_alert_t *ptr,
                                                             idmef_alertident_t **ret,
                                                             int pos);

Create a new idmef_alertident_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_alertident_t object. The created idmef_alertident_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_correlation_alert_t object.
`ret` : | pointer to an address where to store the created idmef_alertident_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_overflow_alert_t

    typedef struct idmef_overflow_alert idmef_overflow_alert_t;

### idmef_overflow_alert_new ()

    int                 idmef_overflow_alert_new            (idmef_overflow_alert_t **ret);

Create a new idmef_overflow_alert_t object.

`ret` : | Pointer where to store the created idmef_overflow_alert_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_overflow_alert_copy ()

    int                 idmef_overflow_alert_copy           (const idmef_overflow_alert_t *src,
                                                             idmef_overflow_alert_t *dst);

Copy a new idmef_overflow_alert_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_overflow_alert_clone ()

    int                 idmef_overflow_alert_clone          (idmef_overflow_alert_t *src,
                                                             idmef_overflow_alert_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_overflow_alert_ref ()

    idmef_overflow_alert_t * idmef_overflow_alert_ref       (idmef_overflow_alert_t *overflow_alert);

Increase `overflow_alert` reference count, so that it can be referenced multiple time.

`overflow_alert` : | pointer to a idmef_overflow_alert_t object.
Returns : | a pointer to `overflow_alert`.

### idmef_overflow_alert_destroy ()

    void                idmef_overflow_alert_destroy        (idmef_overflow_alert_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_overflow_alert_t object.

### idmef_overflow_alert_get_program ()

    prelude_string_t *  idmef_overflow_alert_get_program    (idmef_overflow_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_overflow_alert_set_program ()

    void                idmef_overflow_alert_set_program    (idmef_overflow_alert_t *ptr,
                                                             prelude_string_t *program);

Set `program` object as a children of `ptr`. if `ptr` already contain an `program` object, then it is destroyed, and updated to point to the provided `program` object.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`program` : | pointer to a prelude_string_t object.

### idmef_overflow_alert_new_program ()

    int                 idmef_overflow_alert_new_program    (idmef_overflow_alert_t *ptr,
                                                             prelude_string_t **ret);

Create a new program object, children of idmef_overflow_alert_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_overflow_alert_unset_size ()

    void                idmef_overflow_alert_unset_size     (idmef_overflow_alert_t *ptr);

`ptr` : |

### idmef_overflow_alert_get_size ()

    uint32_t *          idmef_overflow_alert_get_size       (idmef_overflow_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_overflow_alert_set_size ()

    void                idmef_overflow_alert_set_size       (idmef_overflow_alert_t *ptr,
                                                             uint32_t size);

Set `size` object as a children of `ptr`. if `ptr` already contain an `size` object, then it is destroyed, and updated to point to the provided `size` object.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`size` : | pointer to a uint32_t object.

### idmef_overflow_alert_new_size ()

    int                 idmef_overflow_alert_new_size       (idmef_overflow_alert_t *ptr,
                                                             uint32_t **ret);

Create a new size object, children of idmef_overflow_alert_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_overflow_alert_get_buffer ()

    idmef_data_t *      idmef_overflow_alert_get_buffer     (idmef_overflow_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_overflow_alert_set_buffer ()

    void                idmef_overflow_alert_set_buffer     (idmef_overflow_alert_t *ptr,
                                                             idmef_data_t *buffer);

Set `buffer` object as a children of `ptr`. if `ptr` already contain an `buffer` object, then it is destroyed, and updated to point to the provided `buffer` object.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`buffer` : | pointer to a idmef_data_t object.

### idmef_overflow_alert_new_buffer ()

    int                 idmef_overflow_alert_new_buffer     (idmef_overflow_alert_t *ptr,
                                                             idmef_data_t **ret);

Create a new buffer object, children of idmef_overflow_alert_t. If `ptr` already contain a idmef_data_t object, then it is destroyed.

`ptr` : | pointer to a idmef_overflow_alert_t object.
`ret` : | pointer to an address where to store the created idmef_data_t object.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_alert_type_t

    typedef enum {
            IDMEF_ALERT_TYPE_ERROR = -1,
            IDMEF_ALERT_TYPE_DEFAULT = 0,
            IDMEF_ALERT_TYPE_TOOL = 1,
            IDMEF_ALERT_TYPE_CORRELATION = 2,
            IDMEF_ALERT_TYPE_OVERFLOW = 3
    } idmef_alert_type_t;

### idmef_alert_type_to_numeric ()

    idmef_alert_type_t  idmef_alert_type_to_numeric         (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_alert_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_alert_type_to_string ()

    const char *        idmef_alert_type_to_string          (idmef_alert_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_alert_type_t value.

`val` : | an enumeration value for idmef_alert_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_alert_t

    typedef struct idmef_alert idmef_alert_t;

### idmef_alert_new ()

    int                 idmef_alert_new                     (idmef_alert_t **ret);

Create a new idmef_alert_t object.

`ret` : | Pointer where to store the created idmef_alert_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alert_copy ()

    int                 idmef_alert_copy                    (const idmef_alert_t *src,
                                                             idmef_alert_t *dst);

Copy a new idmef_alert_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alert_clone ()

    int                 idmef_alert_clone                   (idmef_alert_t *src,
                                                             idmef_alert_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_alert_ref ()

    idmef_alert_t *     idmef_alert_ref                     (idmef_alert_t *alert);

Increase `alert` reference count, so that it can be referenced multiple time.

`alert` : | pointer to a idmef_alert_t object.
Returns : | a pointer to `alert`.

### idmef_alert_destroy ()

    void                idmef_alert_destroy                 (idmef_alert_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_alert_t object.

### idmef_alert_get_messageid ()

    prelude_string_t *  idmef_alert_get_messageid           (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_messageid ()

    void                idmef_alert_set_messageid           (idmef_alert_t *ptr,
                                                             prelude_string_t *messageid);

Set `messageid` object as a children of `ptr`. if `ptr` already contain an `messageid` object, then it is destroyed, and updated to point to the provided `messageid` object.

`ptr` : | pointer to a idmef_alert_t object.
`messageid` : | pointer to a prelude_string_t object.

### idmef_alert_new_messageid ()

    int                 idmef_alert_new_messageid           (idmef_alert_t *ptr,
                                                             prelude_string_t **ret);

Create a new messageid object, children of idmef_alert_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_next_analyzer ()

    idmef_analyzer_t *  idmef_alert_get_next_analyzer       (idmef_alert_t *alert,
                                                             idmef_analyzer_t *analyzer_cur);

Get the next idmef_analyzer_t object listed in `ptr`. When iterating over the idmef_analyzer_t object listed in `ptr`, `object` should be set to the latest returned idmef_analyzer_t object.

`alert` : | pointer to a idmef_alert_t object.
`analyzer_cur` : | pointer to a idmef_analyzer_t object.
Returns : | the next idmef_analyzer_t in the list.

### idmef_alert_set_analyzer ()

    void                idmef_alert_set_analyzer            (idmef_alert_t *ptr,
                                                             idmef_analyzer_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_analyzer_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | pointer to a idmef_analyzer_t object.
`pos` : | Position in the list.

### idmef_alert_new_analyzer ()

    int                 idmef_alert_new_analyzer            (idmef_alert_t *ptr,
                                                             idmef_analyzer_t **ret,
                                                             int pos);

Create a new idmef_analyzer_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_analyzer_t object. The created idmef_analyzer_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_analyzer_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_create_time ()

    idmef_time_t *      idmef_alert_get_create_time         (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_create_time ()

    void                idmef_alert_set_create_time         (idmef_alert_t *ptr,
                                                             idmef_time_t *create_time);

Set `create_time` object as a children of `ptr`. if `ptr` already contain an `create_time` object, then it is destroyed, and updated to point to the provided `create_time` object.

`ptr` : | pointer to a idmef_alert_t object.
`create_time` : | pointer to a idmef_time_t object.

### idmef_alert_new_create_time ()

    int                 idmef_alert_new_create_time         (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);

Create a new create_time object, children of idmef_alert_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_classification ()

    idmef_classification_t * idmef_alert_get_classification (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_classification ()

    void                idmef_alert_set_classification      (idmef_alert_t *ptr,
                                                             idmef_classification_t *classification);

Set `classification` object as a children of `ptr`. if `ptr` already contain an `classification` object, then it is destroyed, and updated to point to the provided `classification` object.

`ptr` : | pointer to a idmef_alert_t object.
`classification` : | pointer to a idmef_classification_t object.

### idmef_alert_new_classification ()

    int                 idmef_alert_new_classification      (idmef_alert_t *ptr,
                                                             idmef_classification_t **ret);

Create a new classification object, children of idmef_alert_t. If `ptr` already contain a idmef_classification_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_classification_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_detect_time ()

    idmef_time_t *      idmef_alert_get_detect_time         (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_detect_time ()

    void                idmef_alert_set_detect_time         (idmef_alert_t *ptr,
                                                             idmef_time_t *detect_time);

Set `detect_time` object as a children of `ptr`. if `ptr` already contain an `detect_time` object, then it is destroyed, and updated to point to the provided `detect_time` object.

`ptr` : | pointer to a idmef_alert_t object.
`detect_time` : | pointer to a idmef_time_t object.

### idmef_alert_new_detect_time ()

    int                 idmef_alert_new_detect_time         (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);

Create a new detect_time object, children of idmef_alert_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_analyzer_time ()

    idmef_time_t *      idmef_alert_get_analyzer_time       (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_analyzer_time ()

    void                idmef_alert_set_analyzer_time       (idmef_alert_t *ptr,
                                                             idmef_time_t *analyzer_time);

Set `analyzer_time` object as a children of `ptr`. if `ptr` already contain an `analyzer_time` object, then it is destroyed, and updated to point to the provided `analyzer_time` object.

`ptr` : | pointer to a idmef_alert_t object.
`analyzer_time` : | pointer to a idmef_time_t object.

### idmef_alert_new_analyzer_time ()

    int                 idmef_alert_new_analyzer_time       (idmef_alert_t *ptr,
                                                             idmef_time_t **ret);

Create a new analyzer_time object, children of idmef_alert_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_next_source ()

    idmef_source_t *    idmef_alert_get_next_source         (idmef_alert_t *alert,
                                                             idmef_source_t *source_cur);

Get the next idmef_source_t object listed in `ptr`. When iterating over the idmef_source_t object listed in `ptr`, `object` should be set to the latest returned idmef_source_t object.

`alert` : | pointer to a idmef_alert_t object.
`source_cur` : | pointer to a idmef_source_t object.
Returns : | the next idmef_source_t in the list.

### idmef_alert_set_source ()

    void                idmef_alert_set_source              (idmef_alert_t *ptr,
                                                             idmef_source_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_source_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | pointer to a idmef_source_t object.
`pos` : | Position in the list.

### idmef_alert_new_source ()

    int                 idmef_alert_new_source              (idmef_alert_t *ptr,
                                                             idmef_source_t **ret,
                                                             int pos);

Create a new idmef_source_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_source_t object. The created idmef_source_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_source_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_next_target ()

    idmef_target_t *    idmef_alert_get_next_target         (idmef_alert_t *alert,
                                                             idmef_target_t *target_cur);

Get the next idmef_target_t object listed in `ptr`. When iterating over the idmef_target_t object listed in `ptr`, `object` should be set to the latest returned idmef_target_t object.

`alert` : | pointer to a idmef_alert_t object.
`target_cur` : | pointer to a idmef_target_t object.
Returns : | the next idmef_target_t in the list.

### idmef_alert_set_target ()

    void                idmef_alert_set_target              (idmef_alert_t *ptr,
                                                             idmef_target_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_target_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | pointer to a idmef_target_t object.
`pos` : | Position in the list.

### idmef_alert_new_target ()

    int                 idmef_alert_new_target              (idmef_alert_t *ptr,
                                                             idmef_target_t **ret,
                                                             int pos);

Create a new idmef_target_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_target_t object. The created idmef_target_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_target_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_assessment ()

    idmef_assessment_t * idmef_alert_get_assessment         (idmef_alert_t *ptr);

`ptr` : |
Returns : |

### idmef_alert_set_assessment ()

    void                idmef_alert_set_assessment          (idmef_alert_t *ptr,
                                                             idmef_assessment_t *assessment);

Set `assessment` object as a children of `ptr`. if `ptr` already contain an `assessment` object, then it is destroyed, and updated to point to the provided `assessment` object.

`ptr` : | pointer to a idmef_alert_t object.
`assessment` : | pointer to a idmef_assessment_t object.

### idmef_alert_new_assessment ()

    int                 idmef_alert_new_assessment          (idmef_alert_t *ptr,
                                                             idmef_assessment_t **ret);

Create a new assessment object, children of idmef_alert_t. If `ptr` already contain a idmef_assessment_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_assessment_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_next_additional_data ()

    idmef_additional_data_t * idmef_alert_get_next_additional_data
                                                            (idmef_alert_t *alert,
                                                             idmef_additional_data_t *additional_data_cur);

Get the next idmef_additional_data_t object listed in `ptr`. When iterating over the idmef_additional_data_t object listed in `ptr`, `object` should be set to the latest returned idmef_additional_data_t object.

`alert` : | pointer to a idmef_alert_t object.
`additional_data_cur` : | pointer to a idmef_additional_data_t object.
Returns : | the next idmef_additional_data_t in the list.

### idmef_alert_set_additional_data ()

    void                idmef_alert_set_additional_data     (idmef_alert_t *ptr,
                                                             idmef_additional_data_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_additional_data_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | pointer to a idmef_additional_data_t object.
`pos` : | Position in the list.

### idmef_alert_new_additional_data ()

    int                 idmef_alert_new_additional_data     (idmef_alert_t *ptr,
                                                             idmef_additional_data_t **ret,
                                                             int pos);

Create a new idmef_additional_data_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_additional_data_t object. The created idmef_additional_data_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer to an address where to store the created idmef_additional_data_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_type ()

    idmef_alert_type_t  idmef_alert_get_type                (idmef_alert_t *ptr);

Access the type children of `ptr`.

`ptr` : | pointer to a idmef_alert_t object.
Returns : | a pointer to the idmef_alert_type_t children, or NULL if it is not set.

### idmef_alert_get_tool_alert ()

    idmef_tool_alert_t * idmef_alert_get_tool_alert         (idmef_alert_t *ptr);

Access the tool_alert children of `ptr`.

`ptr` : | pointer to a idmef_alert_t object.
Returns : | a pointer to the idmef_tool_alert_t children, or NULL if it is not set.

### idmef_alert_set_tool_alert ()

    void                idmef_alert_set_tool_alert          (idmef_alert_t *ptr,
                                                             idmef_tool_alert_t *tool_alert);

Set `tool_alert` object as a children of `ptr`. if `ptr` already contain a `tool_alert` object, then it is destroyed, and updated to point to the provided `tool_alert` object.

`ptr` : | pointer to a idmef_alert_t object.
`tool_alert` : | pointer to a idmef_tool_alert_t object.

### idmef_alert_new_tool_alert ()

    int                 idmef_alert_new_tool_alert          (idmef_alert_t *ptr,
                                                             idmef_tool_alert_t **ret);

Create a new idmef_tool_alert_t object, children of idmef_alert_t. If `ptr` already contain a idmef_tool_alert_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer where to store the created idmef_tool_alert_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_correlation_alert ()

    idmef_correlation_alert_t * idmef_alert_get_correlation_alert
                                                            (idmef_alert_t *ptr);

Access the correlation_alert children of `ptr`.

`ptr` : | pointer to a idmef_alert_t object.
Returns : | a pointer to the idmef_correlation_alert_t children, or NULL if it is not set.

### idmef_alert_set_correlation_alert ()

    void                idmef_alert_set_correlation_alert   (idmef_alert_t *ptr,
                                                             idmef_correlation_alert_t *correlation_alert);

Set `correlation_alert` object as a children of `ptr`. if `ptr` already contain a `correlation_alert` object, then it is destroyed, and updated to point to the provided `correlation_alert` object.

`ptr` : | pointer to a idmef_alert_t object.
`correlation_alert` : | pointer to a idmef_correlation_alert_t object.

### idmef_alert_new_correlation_alert ()

    int                 idmef_alert_new_correlation_alert   (idmef_alert_t *ptr,
                                                             idmef_correlation_alert_t **ret);

Create a new idmef_correlation_alert_t object, children of idmef_alert_t. If `ptr` already contain a idmef_correlation_alert_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer where to store the created idmef_correlation_alert_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_alert_get_overflow_alert ()

    idmef_overflow_alert_t * idmef_alert_get_overflow_alert (idmef_alert_t *ptr);

Access the overflow_alert children of `ptr`.

`ptr` : | pointer to a idmef_alert_t object.
Returns : | a pointer to the idmef_overflow_alert_t children, or NULL if it is not set.

### idmef_alert_set_overflow_alert ()

    void                idmef_alert_set_overflow_alert      (idmef_alert_t *ptr,
                                                             idmef_overflow_alert_t *overflow_alert);

Set `overflow_alert` object as a children of `ptr`. if `ptr` already contain a `overflow_alert` object, then it is destroyed, and updated to point to the provided `overflow_alert` object.

`ptr` : | pointer to a idmef_alert_t object.
`overflow_alert` : | pointer to a idmef_overflow_alert_t object.

### idmef_alert_new_overflow_alert ()

    int                 idmef_alert_new_overflow_alert      (idmef_alert_t *ptr,
                                                             idmef_overflow_alert_t **ret);

Create a new idmef_overflow_alert_t object, children of idmef_alert_t. If `ptr` already contain a idmef_overflow_alert_t object, then it is destroyed.

`ptr` : | pointer to a idmef_alert_t object.
`ret` : | pointer where to store the created idmef_overflow_alert_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_t

    typedef struct idmef_heartbeat idmef_heartbeat_t;

### idmef_heartbeat_new ()

    int                 idmef_heartbeat_new                 (idmef_heartbeat_t **ret);

Create a new idmef_heartbeat_t object.

`ret` : | Pointer where to store the created idmef_heartbeat_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_heartbeat_copy ()

    int                 idmef_heartbeat_copy                (const idmef_heartbeat_t *src,
                                                             idmef_heartbeat_t *dst);

Copy a new idmef_heartbeat_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_heartbeat_clone ()

    int                 idmef_heartbeat_clone               (idmef_heartbeat_t *src,
                                                             idmef_heartbeat_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_heartbeat_ref ()

    idmef_heartbeat_t * idmef_heartbeat_ref                 (idmef_heartbeat_t *heartbeat);

Increase `heartbeat` reference count, so that it can be referenced multiple time.

`heartbeat` : | pointer to a idmef_heartbeat_t object.
Returns : | a pointer to `heartbeat`.

### idmef_heartbeat_destroy ()

    void                idmef_heartbeat_destroy             (idmef_heartbeat_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_heartbeat_t object.

### idmef_heartbeat_get_messageid ()

    prelude_string_t *  idmef_heartbeat_get_messageid       (idmef_heartbeat_t *ptr);

`ptr` : |
Returns : |

### idmef_heartbeat_set_messageid ()

    void                idmef_heartbeat_set_messageid       (idmef_heartbeat_t *ptr,
                                                             prelude_string_t *messageid);

Set `messageid` object as a children of `ptr`. if `ptr` already contain an `messageid` object, then it is destroyed, and updated to point to the provided `messageid` object.

`ptr` : | pointer to a idmef_heartbeat_t object.
`messageid` : | pointer to a prelude_string_t object.

### idmef_heartbeat_new_messageid ()

    int                 idmef_heartbeat_new_messageid       (idmef_heartbeat_t *ptr,
                                                             prelude_string_t **ret);

Create a new messageid object, children of idmef_heartbeat_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_get_next_analyzer ()

    idmef_analyzer_t *  idmef_heartbeat_get_next_analyzer   (idmef_heartbeat_t *heartbeat,
                                                             idmef_analyzer_t *analyzer_cur);

Get the next idmef_analyzer_t object listed in `ptr`. When iterating over the idmef_analyzer_t object listed in `ptr`, `object` should be set to the latest returned idmef_analyzer_t object.

`heartbeat` : | pointer to a idmef_heartbeat_t object.
`analyzer_cur` : | pointer to a idmef_analyzer_t object.
Returns : | the next idmef_analyzer_t in the list.

### idmef_heartbeat_set_analyzer ()

    void                idmef_heartbeat_set_analyzer        (idmef_heartbeat_t *ptr,
                                                             idmef_analyzer_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_analyzer_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_heartbeat_t object.
`object` : | pointer to a idmef_analyzer_t object.
`pos` : | Position in the list.

### idmef_heartbeat_new_analyzer ()

    int                 idmef_heartbeat_new_analyzer        (idmef_heartbeat_t *ptr,
                                                             idmef_analyzer_t **ret,
                                                             int pos);

Create a new idmef_analyzer_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_analyzer_t object. The created idmef_analyzer_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created idmef_analyzer_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_get_create_time ()

    idmef_time_t *      idmef_heartbeat_get_create_time     (idmef_heartbeat_t *ptr);

`ptr` : |
Returns : |

### idmef_heartbeat_set_create_time ()

    void                idmef_heartbeat_set_create_time     (idmef_heartbeat_t *ptr,
                                                             idmef_time_t *create_time);

Set `create_time` object as a children of `ptr`. if `ptr` already contain an `create_time` object, then it is destroyed, and updated to point to the provided `create_time` object.

`ptr` : | pointer to a idmef_heartbeat_t object.
`create_time` : | pointer to a idmef_time_t object.

### idmef_heartbeat_new_create_time ()

    int                 idmef_heartbeat_new_create_time     (idmef_heartbeat_t *ptr,
                                                             idmef_time_t **ret);

Create a new create_time object, children of idmef_heartbeat_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_get_analyzer_time ()

    idmef_time_t *      idmef_heartbeat_get_analyzer_time   (idmef_heartbeat_t *ptr);

`ptr` : |
Returns : |

### idmef_heartbeat_set_analyzer_time ()

    void                idmef_heartbeat_set_analyzer_time   (idmef_heartbeat_t *ptr,
                                                             idmef_time_t *analyzer_time);

Set `analyzer_time` object as a children of `ptr`. if `ptr` already contain an `analyzer_time` object, then it is destroyed, and updated to point to the provided `analyzer_time` object.

`ptr` : | pointer to a idmef_heartbeat_t object.
`analyzer_time` : | pointer to a idmef_time_t object.

### idmef_heartbeat_new_analyzer_time ()

    int                 idmef_heartbeat_new_analyzer_time   (idmef_heartbeat_t *ptr,
                                                             idmef_time_t **ret);

Create a new analyzer_time object, children of idmef_heartbeat_t. If `ptr` already contain a idmef_time_t object, then it is destroyed.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created idmef_time_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_unset_heartbeat_interval ()

    void                idmef_heartbeat_unset_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr);

`ptr` : |

### idmef_heartbeat_get_heartbeat_interval ()

    uint32_t *          idmef_heartbeat_get_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr);

`ptr` : |
Returns : |

### idmef_heartbeat_set_heartbeat_interval ()

    void                idmef_heartbeat_set_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr,
                                                             uint32_t heartbeat_interval);

Set `heartbeat_interval` object as a children of `ptr`. if `ptr` already contain an `heartbeat_interval` object, then it is destroyed, and updated to point to the provided `heartbeat_interval` object.

`ptr` : | pointer to a idmef_heartbeat_t object.
`heartbeat_interval` : | pointer to a uint32_t object.

### idmef_heartbeat_new_heartbeat_interval ()

    int                 idmef_heartbeat_new_heartbeat_interval
                                                            (idmef_heartbeat_t *ptr,
                                                             uint32_t **ret);

Create a new heartbeat_interval object, children of idmef_heartbeat_t. If `ptr` already contain a uint32_t object, then it is destroyed.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created uint32_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_heartbeat_get_next_additional_data ()

    idmef_additional_data_t * idmef_heartbeat_get_next_additional_data
                                                            (idmef_heartbeat_t *heartbeat,
                                                             idmef_additional_data_t *additional_data_cur);

Get the next idmef_additional_data_t object listed in `ptr`. When iterating over the idmef_additional_data_t object listed in `ptr`, `object` should be set to the latest returned idmef_additional_data_t object.

`heartbeat` : | pointer to a idmef_heartbeat_t object.
`additional_data_cur` : | pointer to a idmef_additional_data_t object.
Returns : | the next idmef_additional_data_t in the list.

### idmef_heartbeat_set_additional_data ()

    void                idmef_heartbeat_set_additional_data (idmef_heartbeat_t *ptr,
                                                             idmef_additional_data_t *object,
                                                             int pos);

Add `object` to position `pos` of `ptr` list of idmef_additional_data_t object.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_heartbeat_t object.
`object` : | pointer to a idmef_additional_data_t object.
`pos` : | Position in the list.

### idmef_heartbeat_new_additional_data ()

    int                 idmef_heartbeat_new_additional_data (idmef_heartbeat_t *ptr,
                                                             idmef_additional_data_t **ret,
                                                             int pos);

Create a new idmef_additional_data_t children of `ptr`, and add it to position `pos` of `ptr` list of idmef_additional_data_t object. The created idmef_additional_data_t object is stored in `ret`.

If `pos` is IDMEF_LIST_APPEND, `object` will be inserted at the tail of the list. If `pos` is IDMEF_LIST_PREPEND, `object` will be inserted at the head of the list.

`ptr` : | pointer to a idmef_heartbeat_t object.
`ret` : | pointer to an address where to store the created idmef_additional_data_t object.
`pos` : | position in the list.
Returns : | 0 on success, or a negative value if an error occured.

### enum idmef_message_type_t

    typedef enum {
            IDMEF_MESSAGE_TYPE_ERROR = -1,
            IDMEF_MESSAGE_TYPE_ALERT = 1,
            IDMEF_MESSAGE_TYPE_HEARTBEAT = 2
    } idmef_message_type_t;

### idmef_message_type_to_numeric ()

    idmef_message_type_t  idmef_message_type_to_numeric     (const char *name);

`name` : | pointer to an IDMEF string representation of a idmef_message_type_t value.
Returns : | the numeric equivalent of `name`, or -1 if `name` is not valid.

### idmef_message_type_to_string ()

    const char *        idmef_message_type_to_string        (idmef_message_type_t val);

Return the IDMEF string equivalent of `val` provided idmef_message_type_t value.

`val` : | an enumeration value for idmef_message_type_t.
Returns : | a pointer to the string describing `val`, or NULL if `val` is invalid.

### idmef_message_t

    typedef struct idmef_message idmef_message_t;

### idmef_message_new ()

    int                 idmef_message_new                   (idmef_message_t **ret);

Create a new idmef_message_t object.

`ret` : | Pointer where to store the created idmef_message_t object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_message_copy ()

    int                 idmef_message_copy                  (const idmef_message_t *src,
                                                             idmef_message_t *dst);

Copy a new idmef_message_t object from `src` to `dst`.

`src` : | Source of the copy.
`dst` : | Where to copy the object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_message_clone ()

    int                 idmef_message_clone                 (idmef_message_t *src,
                                                             idmef_message_t **dst);

Create a copy of `src`, and store it in `dst`.

`src` : | Object to be cloned.
`dst` : | Address where to store the pointer to the cloned object.
Returns : | 0 on success, a negative value if an error occured.

### idmef_message_ref ()

    idmef_message_t *   idmef_message_ref                   (idmef_message_t *message);

Increase `message` reference count, so that it can be referenced multiple time.

`message` : | pointer to a idmef_message_t object.
Returns : | a pointer to `message`.

### idmef_message_destroy ()

    void                idmef_message_destroy               (idmef_message_t *ptr);

Destroy `ptr` and all of it's children. The objects are only destroyed if their reference count reach zero.

`ptr` : | pointer to a idmef_message_t object.

### idmef_message_get_version ()

    prelude_string_t *  idmef_message_get_version           (idmef_message_t *ptr);

`ptr` : |
Returns : |

### idmef_message_set_version ()

    void                idmef_message_set_version           (idmef_message_t *ptr,
                                                             prelude_string_t *version);

Set `version` object as a children of `ptr`. if `ptr` already contain an `version` object, then it is destroyed, and updated to point to the provided `version` object.

`ptr` : | pointer to a idmef_message_t object.
`version` : | pointer to a prelude_string_t object.

### idmef_message_new_version ()

    int                 idmef_message_new_version           (idmef_message_t *ptr,
                                                             prelude_string_t **ret);

Create a new version object, children of idmef_message_t. If `ptr` already contain a prelude_string_t object, then it is destroyed.

`ptr` : | pointer to a idmef_message_t object.
`ret` : | pointer to an address where to store the created prelude_string_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_get_type ()

    idmef_message_type_t  idmef_message_get_type            (idmef_message_t *ptr);

Access the type children of `ptr`.

`ptr` : | pointer to a idmef_message_t object.
Returns : | a pointer to the idmef_message_type_t children, or NULL if it is not set.

### idmef_message_get_alert ()

    idmef_alert_t *     idmef_message_get_alert             (idmef_message_t *ptr);

Access the alert children of `ptr`.

`ptr` : | pointer to a idmef_message_t object.
Returns : | a pointer to the idmef_alert_t children, or NULL if it is not set.

### idmef_message_set_alert ()

    void                idmef_message_set_alert             (idmef_message_t *ptr,
                                                             idmef_alert_t *alert);

Set `alert` object as a children of `ptr`. if `ptr` already contain a `alert` object, then it is destroyed, and updated to point to the provided `alert` object.

`ptr` : | pointer to a idmef_message_t object.
`alert` : | pointer to a idmef_alert_t object.

### idmef_message_new_alert ()

    int                 idmef_message_new_alert             (idmef_message_t *ptr,
                                                             idmef_alert_t **ret);

Create a new idmef_alert_t object, children of idmef_message_t. If `ptr` already contain a idmef_alert_t object, then it is destroyed.

`ptr` : | pointer to a idmef_message_t object.
`ret` : | pointer where to store the created idmef_alert_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_get_heartbeat ()

    idmef_heartbeat_t * idmef_message_get_heartbeat         (idmef_message_t *ptr);

Access the heartbeat children of `ptr`.

`ptr` : | pointer to a idmef_message_t object.
Returns : | a pointer to the idmef_heartbeat_t children, or NULL if it is not set.

### idmef_message_set_heartbeat ()

    void                idmef_message_set_heartbeat         (idmef_message_t *ptr,
                                                             idmef_heartbeat_t *heartbeat);

Set `heartbeat` object as a children of `ptr`. if `ptr` already contain a `heartbeat` object, then it is destroyed, and updated to point to the provided `heartbeat` object.

`ptr` : | pointer to a idmef_message_t object.
`heartbeat` : | pointer to a idmef_heartbeat_t object.

### idmef_message_new_heartbeat ()

    int                 idmef_message_new_heartbeat         (idmef_message_t *ptr,
                                                             idmef_heartbeat_t **ret);

Create a new idmef_heartbeat_t object, children of idmef_message_t. If `ptr` already contain a idmef_heartbeat_t object, then it is destroyed.

`ptr` : | pointer to a idmef_message_t object.
`ret` : | pointer where to store the created idmef_heartbeat_t object.
Returns : | 0 on success, or a negative value if an error occured.

### idmef_message_set_pmsg ()

    void                idmef_message_set_pmsg              (idmef_message_t *message,
                                                             prelude_msg_t *msg);

`message` : |
`msg` : |

### idmef_message_get_pmsg ()

    prelude_msg_t *     idmef_message_get_pmsg              (idmef_message_t *message);

`message` : |
Returns : |

### idmef_action_compare ()

    int                 idmef_action_compare                (const idmef_action_t *obj1,
                                                             const idmef_action_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_additional_data_compare ()

    int                 idmef_additional_data_compare       (const idmef_additional_data_t *obj1,
                                                             const idmef_additional_data_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_address_compare ()

    int                 idmef_address_compare               (const idmef_address_t *obj1,
                                                             const idmef_address_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_alert_compare ()

    int                 idmef_alert_compare                 (const idmef_alert_t *obj1,
                                                             const idmef_alert_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_alertident_compare ()

    int                 idmef_alertident_compare            (const idmef_alertident_t *obj1,
                                                             const idmef_alertident_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_analyzer_compare ()

    int                 idmef_analyzer_compare              (const idmef_analyzer_t *obj1,
                                                             const idmef_analyzer_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_assessment_compare ()

    int                 idmef_assessment_compare            (const idmef_assessment_t *obj1,
                                                             const idmef_assessment_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_checksum_compare ()

    int                 idmef_checksum_compare              (const idmef_checksum_t *obj1,
                                                             const idmef_checksum_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_classification_compare ()

    int                 idmef_classification_compare        (const idmef_classification_t *obj1,
                                                             const idmef_classification_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_confidence_compare ()

    int                 idmef_confidence_compare            (const idmef_confidence_t *obj1,
                                                             const idmef_confidence_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_correlation_alert_compare ()

    int                 idmef_correlation_alert_compare     (const idmef_correlation_alert_t *obj1,
                                                             const idmef_correlation_alert_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_data_compare ()

    int                 idmef_data_compare                  (const idmef_data_t *data1,
                                                             const idmef_data_t *data2);

`data1` : |
`data2` : |
Returns : |

### idmef_file_access_compare ()

    int                 idmef_file_access_compare           (const idmef_file_access_t *obj1,
                                                             const idmef_file_access_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_file_compare ()

    int                 idmef_file_compare                  (const idmef_file_t *obj1,
                                                             const idmef_file_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_heartbeat_compare ()

    int                 idmef_heartbeat_compare             (const idmef_heartbeat_t *obj1,
                                                             const idmef_heartbeat_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_impact_compare ()

    int                 idmef_impact_compare                (const idmef_impact_t *obj1,
                                                             const idmef_impact_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_inode_compare ()

    int                 idmef_inode_compare                 (const idmef_inode_t *obj1,
                                                             const idmef_inode_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_linkage_compare ()

    int                 idmef_linkage_compare               (const idmef_linkage_t *obj1,
                                                             const idmef_linkage_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_message_compare ()

    int                 idmef_message_compare               (const idmef_message_t *obj1,
                                                             const idmef_message_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_node_compare ()

    int                 idmef_node_compare                  (const idmef_node_t *obj1,
                                                             const idmef_node_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_overflow_alert_compare ()

    int                 idmef_overflow_alert_compare        (const idmef_overflow_alert_t *obj1,
                                                             const idmef_overflow_alert_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_process_compare ()

    int                 idmef_process_compare               (const idmef_process_t *obj1,
                                                             const idmef_process_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_reference_compare ()

    int                 idmef_reference_compare             (const idmef_reference_t *obj1,
                                                             const idmef_reference_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_service_compare ()

    int                 idmef_service_compare               (const idmef_service_t *obj1,
                                                             const idmef_service_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_snmp_service_compare ()

    int                 idmef_snmp_service_compare          (const idmef_snmp_service_t *obj1,
                                                             const idmef_snmp_service_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_source_compare ()

    int                 idmef_source_compare                (const idmef_source_t *obj1,
                                                             const idmef_source_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_target_compare ()

    int                 idmef_target_compare                (const idmef_target_t *obj1,
                                                             const idmef_target_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_time_compare ()

    int                 idmef_time_compare                  (const idmef_time_t *time1,
                                                             const idmef_time_t *time2);

`time1` : | Pointer to an idmef_time_t object to compare with `time2`.
`time2` : | Pointer to an idmef_time_t object to compare with `time1`.
Returns : | 0 if `time1` and `time2` match, 1 if `time1` is greater than `time2`, -1 if `time1` is lesser than `time2`.

### idmef_tool_alert_compare ()

    int                 idmef_tool_alert_compare            (const idmef_tool_alert_t *obj1,
                                                             const idmef_tool_alert_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_user_compare ()

    int                 idmef_user_compare                  (const idmef_user_t *obj1,
                                                             const idmef_user_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_user_id_compare ()

    int                 idmef_user_id_compare               (const idmef_user_id_t *obj1,
                                                             const idmef_user_id_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### idmef_web_service_compare ()

    int                 idmef_web_service_compare           (const idmef_web_service_t *obj1,
                                                             const idmef_web_service_t *obj2);

Compare `obj1` with `obj2`.

`obj1` : | Object to compare with `obj2`.
`obj2` : | Object to compare with `obj1`.
Returns : | 0 on match, a negative value on comparison failure.

### IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE

    #define IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE 3

### IDMEF_CLASS_ID_ADDITIONAL_DATA

    #define IDMEF_CLASS_ID_ADDITIONAL_DATA 4

### IDMEF_CLASS_ID_REFERENCE_ORIGIN

    #define IDMEF_CLASS_ID_REFERENCE_ORIGIN 5

### IDMEF_CLASS_ID_REFERENCE

    #define IDMEF_CLASS_ID_REFERENCE 50

### IDMEF_CLASS_ID_CLASSIFICATION

    #define IDMEF_CLASS_ID_CLASSIFICATION 6

### IDMEF_CLASS_ID_USER_ID_TYPE

    #define IDMEF_CLASS_ID_USER_ID_TYPE 7

### IDMEF_CLASS_ID_USER_ID

    #define IDMEF_CLASS_ID_USER_ID 8

### IDMEF_CLASS_ID_USER_CATEGORY

    #define IDMEF_CLASS_ID_USER_CATEGORY 9

### IDMEF_CLASS_ID_USER

    #define IDMEF_CLASS_ID_USER 10

### IDMEF_CLASS_ID_ADDRESS_CATEGORY

    #define IDMEF_CLASS_ID_ADDRESS_CATEGORY 11

### IDMEF_CLASS_ID_ADDRESS

    #define IDMEF_CLASS_ID_ADDRESS 12

### IDMEF_CLASS_ID_PROCESS

    #define IDMEF_CLASS_ID_PROCESS 13

### IDMEF_CLASS_ID_WEB_SERVICE

    #define IDMEF_CLASS_ID_WEB_SERVICE 14

### IDMEF_CLASS_ID_SNMP_SERVICE

    #define IDMEF_CLASS_ID_SNMP_SERVICE 15

### IDMEF_CLASS_ID_SERVICE_TYPE

    #define IDMEF_CLASS_ID_SERVICE_TYPE 16

### IDMEF_CLASS_ID_SERVICE

    #define IDMEF_CLASS_ID_SERVICE 17

### IDMEF_CLASS_ID_NODE_CATEGORY

    #define IDMEF_CLASS_ID_NODE_CATEGORY 18

### IDMEF_CLASS_ID_NODE

    #define IDMEF_CLASS_ID_NODE 19

### IDMEF_CLASS_ID_SOURCE_SPOOFED

    #define IDMEF_CLASS_ID_SOURCE_SPOOFED 20

### IDMEF_CLASS_ID_SOURCE

    #define IDMEF_CLASS_ID_SOURCE 21

### IDMEF_CLASS_ID_FILE_ACCESS

    #define IDMEF_CLASS_ID_FILE_ACCESS 22

### IDMEF_CLASS_ID_INODE

    #define IDMEF_CLASS_ID_INODE 23

### IDMEF_CLASS_ID_CHECKSUM_ALGORITHM

    #define IDMEF_CLASS_ID_CHECKSUM_ALGORITHM 53

### IDMEF_CLASS_ID_CHECKSUM

    #define IDMEF_CLASS_ID_CHECKSUM 52

### IDMEF_CLASS_ID_FILE_CATEGORY

    #define IDMEF_CLASS_ID_FILE_CATEGORY 24

### IDMEF_CLASS_ID_FILE_FSTYPE

    #define IDMEF_CLASS_ID_FILE_FSTYPE 25

### IDMEF_CLASS_ID_FILE

    #define IDMEF_CLASS_ID_FILE 26

### IDMEF_CLASS_ID_LINKAGE_CATEGORY

    #define IDMEF_CLASS_ID_LINKAGE_CATEGORY 27

### IDMEF_CLASS_ID_LINKAGE

    #define IDMEF_CLASS_ID_LINKAGE 28

### IDMEF_CLASS_ID_TARGET_DECOY

    #define IDMEF_CLASS_ID_TARGET_DECOY 29

### IDMEF_CLASS_ID_TARGET

    #define IDMEF_CLASS_ID_TARGET 30

### IDMEF_CLASS_ID_ANALYZER

    #define IDMEF_CLASS_ID_ANALYZER 31

### IDMEF_CLASS_ID_ALERTIDENT

    #define IDMEF_CLASS_ID_ALERTIDENT 32

### IDMEF_CLASS_ID_IMPACT_SEVERITY

    #define IDMEF_CLASS_ID_IMPACT_SEVERITY 33

### IDMEF_CLASS_ID_IMPACT_COMPLETION

    #define IDMEF_CLASS_ID_IMPACT_COMPLETION 34

### IDMEF_CLASS_ID_IMPACT_TYPE

    #define IDMEF_CLASS_ID_IMPACT_TYPE 35

### IDMEF_CLASS_ID_IMPACT

    #define IDMEF_CLASS_ID_IMPACT 36

### IDMEF_CLASS_ID_ACTION_CATEGORY

    #define IDMEF_CLASS_ID_ACTION_CATEGORY 37

### IDMEF_CLASS_ID_ACTION

    #define IDMEF_CLASS_ID_ACTION 38

### IDMEF_CLASS_ID_CONFIDENCE_RATING

    #define IDMEF_CLASS_ID_CONFIDENCE_RATING 39

### IDMEF_CLASS_ID_CONFIDENCE

    #define IDMEF_CLASS_ID_CONFIDENCE 40

### IDMEF_CLASS_ID_ASSESSMENT

    #define IDMEF_CLASS_ID_ASSESSMENT 41

### IDMEF_CLASS_ID_TOOL_ALERT

    #define IDMEF_CLASS_ID_TOOL_ALERT 42

### IDMEF_CLASS_ID_CORRELATION_ALERT

    #define IDMEF_CLASS_ID_CORRELATION_ALERT 43

### IDMEF_CLASS_ID_OVERFLOW_ALERT

    #define IDMEF_CLASS_ID_OVERFLOW_ALERT 44

### IDMEF_CLASS_ID_ALERT_TYPE

    #define IDMEF_CLASS_ID_ALERT_TYPE 45

### IDMEF_CLASS_ID_ALERT

    #define IDMEF_CLASS_ID_ALERT 46

### IDMEF_CLASS_ID_HEARTBEAT

    #define IDMEF_CLASS_ID_HEARTBEAT 47

### IDMEF_CLASS_ID_MESSAGE_TYPE

    #define IDMEF_CLASS_ID_MESSAGE_TYPE 48

### IDMEF_CLASS_ID_MESSAGE

    #define IDMEF_CLASS_ID_MESSAGE 49

## See Also

idmef_path_t for the high level IDMEF API.