1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 /* 3 * Copyright (C) 2016 Red Hat, Inc. (www.redhat.com) 4 * 5 * This library is free software: you can redistribute it and/or modify it 6 * under the terms of the GNU Lesser General Public License as published by 7 * the Free Software Foundation. 8 * 9 * This library is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 * for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this library. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION) 19 #error "Only <camel/camel.h> can be included directly." 20 #endif 21 22 #ifndef CAMEL_NAME_VALUE_ARRAY_H 23 #define CAMEL_NAME_VALUE_ARRAY_H 24 25 #include <glib-object.h> 26 #include <camel/camel-enums.h> 27 28 G_BEGIN_DECLS 29 30 /** 31 * CamelNameValueArray: 32 * 33 * Since: 3.24 34 **/ 35 struct _CamelNameValueArray; 36 typedef struct _CamelNameValueArray CamelNameValueArray; 37 38 #define CAMEL_TYPE_NAME_VALUE_ARRAY (camel_name_value_array_get_type ()) 39 40 GType camel_name_value_array_get_type (void) G_GNUC_CONST; 41 CamelNameValueArray * 42 camel_name_value_array_new (void); 43 CamelNameValueArray * 44 camel_name_value_array_new_sized 45 (guint reserve_size); 46 CamelNameValueArray * 47 camel_name_value_array_copy (const CamelNameValueArray *array); 48 void camel_name_value_array_free (CamelNameValueArray *array); 49 guint camel_name_value_array_get_length 50 (const CamelNameValueArray *array); 51 gboolean camel_name_value_array_get (const CamelNameValueArray *array, 52 guint index, 53 const gchar **out_name, 54 const gchar **out_value); 55 const gchar * camel_name_value_array_get_named 56 (const CamelNameValueArray *array, 57 CamelCompareType compare_type, 58 const gchar *name); 59 const gchar * camel_name_value_array_get_name (const CamelNameValueArray *array, 60 guint index); 61 const gchar * camel_name_value_array_get_value 62 (const CamelNameValueArray *array, 63 guint index); 64 void camel_name_value_array_append (CamelNameValueArray *array, 65 const gchar *name, 66 const gchar *value); 67 gboolean camel_name_value_array_set (CamelNameValueArray *array, 68 guint index, 69 const gchar *name, 70 const gchar *value); 71 gboolean camel_name_value_array_set_name (CamelNameValueArray *array, 72 guint index, 73 const gchar *name); 74 gboolean camel_name_value_array_set_value 75 (CamelNameValueArray *array, 76 guint index, 77 const gchar *value); 78 gboolean camel_name_value_array_set_named 79 (CamelNameValueArray *array, 80 CamelCompareType compare_type, 81 const gchar *name, 82 const gchar *value); 83 gboolean camel_name_value_array_remove (CamelNameValueArray *array, 84 guint index); 85 guint camel_name_value_array_remove_named 86 (CamelNameValueArray *array, 87 CamelCompareType compare_type, 88 const gchar *name, 89 gboolean all_occurrences); 90 void camel_name_value_array_clear (CamelNameValueArray *array); 91 gboolean camel_name_value_array_equal (const CamelNameValueArray *array_a, 92 const CamelNameValueArray *array_b, 93 CamelCompareType compare_type); 94 95 G_END_DECLS 96 97 #endif /* CAMEL_NAME_VALUE_ARRAY_H */ 98