@HOST_FORMAT:
@NETWORK_FORMAT:
+<!-- ##### MACRO GRAS_LOG_DEFAULT_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+
+<!-- ##### MACRO GRAS_LOG_EXTERNAL_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+
+<!-- ##### MACRO GRAS_LOG_ISENABLED ##### -->
+<para>
+
+</para>
+
+@catName:
+@priority:
+
<!-- ##### MACRO GRAS_LOG_MAYDAY ##### -->
<para>
</para>
+<!-- ##### MACRO GRAS_LOG_NEW_CATEGORY ##### -->
+<para>
+
+</para>
+
+@catName:
+@desc:
+
+<!-- ##### MACRO GRAS_LOG_NEW_DEFAULT_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+@desc:
+
+<!-- ##### MACRO GRAS_LOG_NEW_DEFAULT_SUBCATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+@parent:
+@desc:
+
+<!-- ##### MACRO GRAS_LOG_NEW_SUBCATEGORY ##### -->
+<para>
+
+</para>
+
+@catName:
+@parent:
+@desc:
+
<!-- ##### MACRO GRAS_LOG_ROOT_CAT ##### -->
<para>
</para>
+<!-- ##### MACRO GRAS_LOG_STATIC_THRESHOLD ##### -->
+<para>
+
+</para>
+
+
<!-- ##### MACRO HAVE_DLFCN_H ##### -->
<para>
@ud:
-<!-- ##### FUNCTION gras_datadesc_cmp ##### -->
+<!-- ##### FUNCTION gras_cfg_check ##### -->
<para>
</para>
-@d1:
-@d2:
+@cfg:
@Returns:
-@dd1:
-@c1:
-@dd2:
-@c2:
-<!-- ##### FUNCTION gras_datadesc_copy_data ##### -->
+<!-- ##### FUNCTION gras_cfg_cpy ##### -->
<para>
</para>
-@dd:
-@c:
-@data:
+@tocopy:
+@whereto:
+@Returns:
-<!-- ##### MACRO gras_datadesc_declare_array ##### -->
+<!-- ##### FUNCTION gras_cfg_dump ##### -->
<para>
</para>
@name:
-@elm_type:
-@size:
-@code:
+@indent:
+@cfg:
-<!-- ##### FUNCTION gras_datadesc_declare_array_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_empty ##### -->
<para>
</para>
+@cfg:
@name:
-@element_type:
-@fixed_size:
-@dynamic_size:
-@post:
-@code:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_ref_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_free ##### -->
+<para>
+
+</para>
+
+@cfg:
+
+<!-- ##### FUNCTION gras_cfg_get_double ##### -->
<para>
</para>
+@cfg:
@name:
-@referenced_type:
-@discriminant:
-@post:
-@code:
+@val:
@Returns:
-<!-- ##### MACRO gras_datadesc_declare_ref_disc ##### -->
+<!-- ##### FUNCTION gras_cfg_get_dynar ##### -->
<para>
</para>
+@cfg:
@name:
-@discriminant:
-@code:
+@dynar:
+@Returns:
-<!-- ##### MACRO gras_datadesc_declare_struct_add_code ##### -->
+<!-- ##### FUNCTION gras_cfg_get_host ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_code:
+@cfg:
+@name:
+@host:
+@port:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_add_code_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_get_int ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_code:
-@pre_cb:
-@post_cb:
+@cfg:
+@name:
+@val:
@Returns:
-<!-- ##### MACRO gras_datadesc_declare_struct_add_name ##### -->
+<!-- ##### FUNCTION gras_cfg_get_string ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_name:
+@cfg:
+@name:
+@val:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_add_name_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_new ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_name:
-@pre_cb:
-@post_cb:
@Returns:
+@whereto:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_append_name ##### -->
+<!-- ##### FUNCTION gras_cfg_register ##### -->
<para>
</para>
-@struct_type:
+@cfg:
@name:
-@field_type_name:
+@type:
+@min:
+@max:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_register_str ##### -->
+<para>
+
+</para>
+
+@cfg:
+@entry:
+@Returns:
+
+<!-- ##### FUNCTION gras_cfg_rm_double ##### -->
<para>
</para>
+@cfg:
@name:
-@pre_cb:
-@post_cb:
-@code:
+@val:
@Returns:
-<!-- ##### MACRO gras_datadesc_declare_union_add_code ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_host ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_code:
+@cfg:
+@name:
+@host:
+@port:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_add_code_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_int ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_code:
-@pre_cb:
-@post_cb:
+@cfg:
+@name:
+@val:
@Returns:
-<!-- ##### MACRO gras_datadesc_declare_union_add_name ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_string ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_name:
+@cfg:
+@name:
+@val:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_add_name_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_set ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_name:
-@pre_cb:
-@post_cb:
+@cfg:
+@Varargs:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_append_name ##### -->
+<!-- ##### FUNCTION gras_cfg_set_double ##### -->
<para>
</para>
-@union_type:
+@cfg:
@name:
-@field_type_name:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_set_host ##### -->
<para>
</para>
+@cfg:
@name:
-@field_count:
-@post:
-@code:
+@host:
+@port:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_from_nws ##### -->
+<!-- ##### FUNCTION gras_cfg_set_int ##### -->
<para>
</para>
+@cfg:
@name:
-@desc:
-@howmany:
-@code:
+@val:
@Returns:
-@dst:
-<!-- ##### FUNCTION gras_datadesc_import_nws ##### -->
+<!-- ##### FUNCTION gras_cfg_set_parse ##### -->
<para>
</para>
-@name:
-@desc:
-@howmany:
-@dst:
+@cfg:
+@options:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_parse ##### -->
+<!-- ##### FUNCTION gras_cfg_set_string ##### -->
<para>
</para>
+@cfg:
@name:
-@Cdefinition:
-@dst:
+@val:
@Returns:
-@code:
-@def:
-<!-- ##### FUNCTION gras_ddt_free ##### -->
+<!-- ##### FUNCTION gras_cfg_set_vargs ##### -->
+<para>
+
+</para>
+
+@cfg:
+@pa:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_cb_set_post ##### -->
<para>
</para>
@type:
+@post:
-<!-- ##### FUNCTION gras_ddt_get_by_code ##### -->
+<!-- ##### FUNCTION gras_datadesc_cb_set_pre ##### -->
<para>
</para>
-@code:
@type:
+@pre:
+
+<!-- ##### FUNCTION gras_datadesc_cmp ##### -->
+<para>
+
+</para>
+
+@d1:
+@d2:
@Returns:
+@dd1:
+@c1:
+@dd2:
+@c2:
-<!-- ##### FUNCTION gras_ddt_get_by_name ##### -->
+<!-- ##### FUNCTION gras_datadesc_copy_data ##### -->
+<para>
+
+</para>
+
+@dd:
+@c:
+@data:
+
+<!-- ##### MACRO gras_datadesc_declare_array ##### -->
<para>
</para>
@name:
-@type:
-@Returns:
+@elm_type:
+@size:
+@code:
-<!-- ##### FUNCTION gras_ddt_new_array ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_cb ##### -->
<para>
</para>
@fixed_size:
@dynamic_size:
@post:
-@dst:
+@code:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_from_nws ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_dyn ##### -->
<para>
</para>
@name:
-@desc:
-@howmany:
+@element_type:
+@dynamic_size:
@dst:
@Returns:
+@elm_type:
+@code:
-<!-- ##### FUNCTION gras_ddt_new_ignored ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_fixed ##### -->
<para>
</para>
@name:
-@default_value:
-@free_func:
-@size:
-@alignment:
-@post:
+@element_type:
+@fixed_size:
@dst:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_parse ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_ref ##### -->
<para>
</para>
@name:
-@C_definition:
+@referenced_type:
@dst:
@Returns:
+@ref_type:
+@code:
-<!-- ##### FUNCTION gras_ddt_new_ref ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_ref_cb ##### -->
<para>
</para>
@referenced_type:
@discriminant:
@post:
-@dst:
+@code:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_scalar ##### -->
+<!-- ##### MACRO gras_datadesc_declare_ref_disc ##### -->
<para>
</para>
@name:
-@type:
-@Returns:
+@discriminant:
+@code:
-<!-- ##### FUNCTION gras_ddt_new_struct ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_ref_generic ##### -->
<para>
</para>
@name:
-@pre:
-@post:
+@discriminant:
@dst:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_struct_append ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_struct ##### -->
<para>
</para>
-@struct_type:
@name:
-@field_type:
-@pre:
-@post:
+@dst:
+@Returns:
+@code:
+
+<!-- ##### MACRO gras_datadesc_declare_struct_add_code ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_code:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_add_code_cb ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_code:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### MACRO gras_datadesc_declare_struct_add_name ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_name:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_add_name_cb ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_name:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_append ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_append_name ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type_name:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_cb ##### -->
+<para>
+
+</para>
+
+@name:
+@pre_cb:
+@post_cb:
+@code:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_close ##### -->
+<para>
+
+</para>
+
+@struct_type:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union ##### -->
+<para>
+
+</para>
+
+@name:
+@selector:
+@dst:
+@Returns:
+@code:
+
+<!-- ##### MACRO gras_datadesc_declare_union_add_code ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_code:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_add_code_cb ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_code:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### MACRO gras_datadesc_declare_union_add_name ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_name:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_add_name_cb ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_name:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_append ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_append_name ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type_name:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_cb ##### -->
+<para>
+
+</para>
+
+@name:
+@field_count:
+@post:
+@code:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_close ##### -->
+<para>
+
+</para>
+
+@union_type:
+
+<!-- ##### FUNCTION gras_datadesc_from_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@code:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_datadesc_import_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_parse ##### -->
+<para>
+
+</para>
+
+@name:
+@Cdefinition:
+@dst:
+@Returns:
+@code:
+@def:
+
+<!-- ##### FUNCTION gras_dd_cbps_block_begin ##### -->
+<para>
+
+</para>
+
+@ps:
+
+<!-- ##### FUNCTION gras_dd_cbps_block_end ##### -->
+<para>
+
+</para>
+
+@ps:
+
+<!-- ##### FUNCTION gras_dd_cbps_get ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_pop ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_push ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@data:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_set ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@data:
+@ddt:
+
+<!-- ##### FUNCTION gras_ddt_free ##### -->
+<para>
+
+</para>
+
+@type:
+
+<!-- ##### FUNCTION gras_ddt_get_by_code ##### -->
+<para>
+
+</para>
+
+@code:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_get_by_name ##### -->
+<para>
+
+</para>
+
+@name:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_array ##### -->
+<para>
+
+</para>
+
+@name:
+@element_type:
+@fixed_size:
+@dynamic_size:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_from_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_ignored ##### -->
+<para>
+
+</para>
+
+@name:
+@default_value:
+@free_func:
+@size:
+@alignment:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_parse ##### -->
+<para>
+
+</para>
+
+@name:
+@C_definition:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_ref ##### -->
+<para>
+
+</para>
+
+@name:
+@referenced_type:
+@discriminant:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_scalar ##### -->
+<para>
+
+</para>
+
+@name:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_struct ##### -->
+<para>
+
+</para>
+
+@name:
+@pre:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_struct_append ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type:
+@pre:
+@post:
@Returns:
<!-- ##### FUNCTION gras_ddt_new_union ##### -->
@post:
@Returns:
-<!-- ##### FUNCTION gras_ddt_register ##### -->
+<!-- ##### FUNCTION gras_ddt_register ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_free ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_get_data ##### -->
+<para>
+
+</para>
+
+@cursor:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_get_key ##### -->
+<para>
+
+</para>
+
+@cursor:
+@key:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_new ##### -->
+<para>
+
+</para>
+
+@head:
+@Returns:
+@cursor:
+
+<!-- ##### FUNCTION gras_dict_cursor_next ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_rewind ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_dump ##### -->
+<para>
+
+</para>
+
+@head:
+@output:
+@Returns:
+
+<!-- ##### MACRO gras_dict_foreach ##### -->
+<para>
+
+</para>
+
+@dict:
+@cursor:
+@key:
+@data:
+
+<!-- ##### FUNCTION gras_dict_free ##### -->
+<para>
+
+</para>
+
+@dict:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_get ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_get_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_insert ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_insert_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+@dict:
+
+<!-- ##### FUNCTION gras_dict_print ##### -->
+<para>
+
+</para>
+
+@data:
+
+<!-- ##### FUNCTION gras_dict_prints ##### -->
+<para>
+
+</para>
+
+@data:
+
+<!-- ##### FUNCTION gras_dict_remove ##### -->
<para>
</para>
-@type:
+@head:
+@key:
@Returns:
-<!-- ##### FUNCTION gras_dict_cursor_next ##### -->
+<!-- ##### FUNCTION gras_dict_remove_ext ##### -->
<para>
</para>
-@cursor:
+@head:
+@key:
+@key_len:
@Returns:
-<!-- ##### FUNCTION gras_dict_insert ##### -->
+<!-- ##### FUNCTION gras_dict_retrieve ##### -->
<para>
</para>
@head:
@key:
@data:
-@free_ctn:
@Returns:
-<!-- ##### FUNCTION gras_dict_insert_ext ##### -->
+<!-- ##### FUNCTION gras_dict_retrieve_ext ##### -->
<para>
</para>
@key:
@key_len:
@data:
-@free_ctn:
@Returns:
-<!-- ##### FUNCTION gras_dict_retrieve ##### -->
+<!-- ##### FUNCTION gras_dict_set ##### -->
<para>
</para>
@head:
@key:
@data:
+@free_ctn:
@Returns:
-<!-- ##### FUNCTION gras_dict_retrieve_ext ##### -->
+<!-- ##### FUNCTION gras_dict_set_ext ##### -->
<para>
</para>
@key:
@key_len:
@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_cursor_first ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
+<!-- ##### FUNCTION gras_dynar_cursor_get ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+@whereto:
@Returns:
+<!-- ##### FUNCTION gras_dynar_cursor_rm ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
+<!-- ##### FUNCTION gras_dynar_cursor_step ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
<!-- ##### FUNCTION gras_dynar_first ##### -->
<para>
@cursor:
@Returns:
+<!-- ##### MACRO gras_dynar_foreach ##### -->
+<para>
+
+</para>
+
+@_dynar:
+@_cursor:
+@_data:
+@_whereto:
+
+<!-- ##### FUNCTION gras_dynar_free ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_free_container ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_get ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@dst:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_insert_at ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_length ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_map ##### -->
+<para>
+
+</para>
+
+@dynar:
+@operator:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_new ##### -->
+<para>
+
+</para>
+
+@Param1:
+@free_func:
+@Returns:
+@whereto:
+@elm_size:
+
<!-- ##### FUNCTION gras_dynar_next ##### -->
<para>
@whereto:
@Returns:
+<!-- ##### FUNCTION gras_dynar_pop ##### -->
+<para>
+
+</para>
+
+@dynar:
+@dst:
+@whereto:
+
+<!-- ##### FUNCTION gras_dynar_push ##### -->
+<para>
+
+</para>
+
+@dynar:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_remove_at ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@object:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_remplace ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@object:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_reset ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_set ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_shift ##### -->
+<para>
+
+</para>
+
+@dynar:
+@dst:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_unshift ##### -->
+<para>
+
+</para>
+
+@dynar:
+@src:
+@Returns:
+@object:
+
+<!-- ##### ENUM gras_error_t ##### -->
+<para>
+
+</para>
+
+@no_error: no error
+@mismatch_error: Not found
+@system_error: a syscall did fail
+@network_error: error while sending/receiving data
+@timeout_error: not quick enough, dude
+@thread_error: error while [un]locking
+@unknown_error: no idea
+
<!-- ##### FUNCTION gras_lock ##### -->
<para>
@Returns:
+<!-- ##### FUNCTION gras_log_appender_set ##### -->
+<para>
+
+</para>
+
+@cat:
+@app:
+
+<!-- ##### FUNCTION gras_log_control_set ##### -->
+<para>
+
+</para>
+
+@cs:
+@Returns:
+
+<!-- ##### VARIABLE gras_log_default_appender ##### -->
+<para>
+
+</para>
+
+
<!-- ##### FUNCTION gras_log_parent_set ##### -->
<para>
@cat:
@parent:
+<!-- ##### ENUM gras_log_priority_t ##### -->
+<para>
+
+</para>
+
+@gras_log_priority_none:
+@gras_log_priority_trace:
+@gras_log_priority_debug:
+@gras_log_priority_verbose:
+@gras_log_priority_info:
+@gras_log_priority_warning:
+@gras_log_priority_error:
+@gras_log_priority_critical:
+@gras_log_priority_infinite:
+@gras_log_priority_uninitialized:
+
<!-- ##### FUNCTION gras_log_threshold_set ##### -->
<para>
@Varargs:
@Returns:
+<!-- ##### FUNCTION gras_set_add ##### -->
+<para>
+
+</para>
+
+@set:
+@elm:
+@free_func:
+@Returns:
+
+<!-- ##### MACRO gras_set_foreach ##### -->
+<para>
+
+</para>
+
+@set:
+@cursor:
+@elm:
+
+<!-- ##### FUNCTION gras_set_free ##### -->
+<para>
+
+</para>
+
+@set:
+
+<!-- ##### FUNCTION gras_set_get_by_id ##### -->
+<para>
+
+</para>
+
+@set:
+@id:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_get_by_name ##### -->
+<para>
+
+</para>
+
+@set:
+@key:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_get_by_name_ext ##### -->
+<para>
+
+</para>
+
+@set:
+@name:
+@name_len:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_sleep ##### -->
+<para>
+
+</para>
+
+@Param1:
+@Param2:
+
<!-- ##### FUNCTION gras_sock_client_open ##### -->
<para>
@sock:
@Returns:
+<!-- ##### FUNCTION gras_time ##### -->
+<para>
+
+</para>
+
+@Returns:
+
<!-- ##### FUNCTION gras_unlock ##### -->
<para>