1 /* GIO - GLib Input, Output and Streaming Library 2 * 3 * Copyright (C) 2006-2007 Red Hat, Inc. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General 16 * Public License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 18 * Boston, MA 02111-1307, USA. 19 * 20 * Author: Alexander Larsson <alexl (at) redhat.com> 21 */ 22 23 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) 24 #error "Only <gio/gio.h> can be included directly." 25 #endif 26 27 #ifndef __G_FILE_ATTRIBUTE_H__ 28 #define __G_FILE_ATTRIBUTE_H__ 29 30 #include <gio/giotypes.h> 31 32 G_BEGIN_DECLS 33 34 /** 35 * GFileAttributeInfo: 36 * @name: the name of the attribute. 37 * @type: the #GFileAttributeType type of the attribute. 38 * @flags: a set of #GFileAttributeInfoFlags. 39 * 40 * Information about a specific attribute. 41 **/ 42 struct _GFileAttributeInfo 43 { 44 char *name; 45 GFileAttributeType type; 46 GFileAttributeInfoFlags flags; 47 }; 48 49 /** 50 * GFileAttributeInfoList: 51 * @infos: an array of #GFileAttributeInfo<!-- -->s. 52 * @n_infos: the number of values in the array. 53 * 54 * Acts as a lightweight registry for possible valid file attributes. 55 * The registry stores Key-Value pair formats as #GFileAttributeInfo<!-- -->s. 56 **/ 57 struct _GFileAttributeInfoList 58 { 59 GFileAttributeInfo *infos; 60 int n_infos; 61 }; 62 63 GType g_file_attribute_info_list_get_type (void); 64 GFileAttributeInfoList * g_file_attribute_info_list_new (void); 65 GFileAttributeInfoList * g_file_attribute_info_list_ref (GFileAttributeInfoList *list); 66 void g_file_attribute_info_list_unref (GFileAttributeInfoList *list); 67 GFileAttributeInfoList * g_file_attribute_info_list_dup (GFileAttributeInfoList *list); 68 const GFileAttributeInfo *g_file_attribute_info_list_lookup (GFileAttributeInfoList *list, 69 const char *name); 70 void g_file_attribute_info_list_add (GFileAttributeInfoList *list, 71 const char *name, 72 GFileAttributeType type, 73 GFileAttributeInfoFlags flags); 74 75 G_END_DECLS 76 77 #endif /* __G_FILE_INFO_H__ */ 78