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

## Synopsis

    #define     IDMEF_LIST_APPEND
    #define     IDMEF_LIST_PREPEND
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_reference_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_user_id_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 prelude_string_t *object);
    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 *ptr,
                                                 prelude_string_t *object);
    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 *ptr);
    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 *ptr,
                                                 prelude_string_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_address_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 prelude_string_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_file_access_t *object);
    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 *ptr,
                                                 idmef_linkage_t *object);
    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 *ptr,
                                                 idmef_checksum_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_file_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_action_t *object);
    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 *ptr);
    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 *ptr,
                                                 idmef_alertident_t *object);
    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 *ptr);
    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 *ptr,
                                                 idmef_alertident_t *object);
    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 *ptr);
    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 *ptr);
    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 *ptr,
                                                 idmef_analyzer_t *object);
    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 *ptr,
                                                 idmef_source_t *object);
    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 *ptr,
                                                 idmef_target_t *object);
    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 *ptr,
                                                 idmef_additional_data_t *object);
    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 *ptr);
    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 *ptr,
                                                 idmef_analyzer_t *object);
    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 *ptr,
                                                 idmef_additional_data_t *object);
    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 *ptr);
    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)

### 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 idmef_reference_t *object);

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.

`ptr` : | pointer to a idmef_classification_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 idmef_user_id_t *object);

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.

`ptr` : | pointer to a idmef_user_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 prelude_string_t *object);

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.

`ptr` : | pointer to a idmef_process_t object.
`object` : | 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 *ptr,
                                                 prelude_string_t *object);

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.

`ptr` : | pointer to a idmef_process_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr,
                                                 prelude_string_t *object);

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.

`ptr` : | pointer to a idmef_web_service_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 idmef_address_t *object);

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.

`ptr` : | pointer to a idmef_node_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 prelude_string_t *object);

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.

`ptr` : | pointer to a idmef_file_access_t object.
`object` : | 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr);

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

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

### 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 *ptr,
                                                 idmef_file_access_t *object);

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.

`ptr` : | pointer to a idmef_file_t object.
`object` : | 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 *ptr,
                                                 idmef_linkage_t *object);

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.

`ptr` : | pointer to a idmef_file_t object.
`object` : | 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 *ptr,
                                                 idmef_checksum_t *object);

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.

`ptr` : | pointer to a idmef_file_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_linkage_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_target_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_file_t *object);

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.

`ptr` : | pointer to a idmef_target_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_analyzer_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_alertident_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_impact_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_action_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_confidence_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_assessment_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_action_t *object);

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.

`ptr` : | pointer to a idmef_assessment_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_tool_alert_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_alertident_t *object);

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.

`ptr` : | pointer to a idmef_tool_alert_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_correlation_alert_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_alertident_t *object);

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.

`ptr` : | pointer to a idmef_correlation_alert_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_overflow_alert_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr);

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

`ptr` : | pointer to a idmef_alert_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_analyzer_t *object);

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.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | 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 *ptr,
                                                 idmef_source_t *object);

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.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | 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 *ptr,
                                                 idmef_target_t *object);

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.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | 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 *ptr,
                                                 idmef_additional_data_t *object);

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.

`ptr` : | pointer to a idmef_alert_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_heartbeat_t object.
Returns : | a pointer to `ptr`.

### 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 *ptr,
                                                 idmef_analyzer_t *object);

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.

`ptr` : | pointer to a idmef_heartbeat_t object.
`object` : | 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 *ptr,
                                                 idmef_additional_data_t *object);

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.

`ptr` : | pointer to a idmef_heartbeat_t object.
`object` : | 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 *ptr);

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

`ptr` : | pointer to a idmef_message_t object.
Returns : | a pointer to `ptr`.

### 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.