Home | History | Annotate | Download | only in gio
      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 #ifndef __G_FILE_ATTRIBUTE_PRIV_H__
     24 #define __G_FILE_ATTRIBUTE_PRIV_H__
     25 
     26 #include "gfileattribute.h"
     27 #include "gfileinfo.h"
     28 
     29 #define G_FILE_ATTRIBUTE_VALUE_INIT {0}
     30 
     31 typedef struct  {
     32   GFileAttributeType type : 8;
     33   GFileAttributeStatus status : 8;
     34   union {
     35     gboolean boolean;
     36     gint32 int32;
     37     guint32 uint32;
     38     gint64 int64;
     39     guint64 uint64;
     40     char *string;
     41     GObject *obj;
     42   } u;
     43 } GFileAttributeValue;
     44 
     45 GFileAttributeValue *_g_file_attribute_value_new             (void);
     46 void                 _g_file_attribute_value_free            (GFileAttributeValue *attr);
     47 void                 _g_file_attribute_value_clear           (GFileAttributeValue *attr);
     48 void                 _g_file_attribute_value_set             (GFileAttributeValue *attr,
     49 							      const GFileAttributeValue *new_value);
     50 GFileAttributeValue *_g_file_attribute_value_dup             (const GFileAttributeValue *other);
     51 gpointer             _g_file_attribute_value_peek_as_pointer (GFileAttributeValue *attr);
     52 
     53 char *               _g_file_attribute_value_as_string       (const GFileAttributeValue *attr);
     54 
     55 const char *         _g_file_attribute_value_get_string      (const GFileAttributeValue *attr);
     56 const char *         _g_file_attribute_value_get_byte_string (const GFileAttributeValue *attr);
     57 gboolean             _g_file_attribute_value_get_boolean     (const GFileAttributeValue *attr);
     58 guint32              _g_file_attribute_value_get_uint32      (const GFileAttributeValue *attr);
     59 gint32               _g_file_attribute_value_get_int32       (const GFileAttributeValue *attr);
     60 guint64              _g_file_attribute_value_get_uint64      (const GFileAttributeValue *attr);
     61 gint64               _g_file_attribute_value_get_int64       (const GFileAttributeValue *attr);
     62 GObject *            _g_file_attribute_value_get_object      (const GFileAttributeValue *attr);
     63 
     64 void                 _g_file_attribute_value_set_from_pointer(GFileAttributeValue *attr,
     65 							      GFileAttributeType   type,
     66 							      gpointer             value_p,
     67 							      gboolean             dup);
     68 void                 _g_file_attribute_value_set_string      (GFileAttributeValue *attr,
     69 							      const char          *string);
     70 void                 _g_file_attribute_value_set_byte_string (GFileAttributeValue *attr,
     71 							      const char          *string);
     72 void                 _g_file_attribute_value_set_boolean     (GFileAttributeValue *attr,
     73 							      gboolean             value);
     74 void                 _g_file_attribute_value_set_uint32      (GFileAttributeValue *attr,
     75 							      guint32              value);
     76 void                 _g_file_attribute_value_set_int32       (GFileAttributeValue *attr,
     77 							      gint32               value);
     78 void                 _g_file_attribute_value_set_uint64      (GFileAttributeValue *attr,
     79 							      guint64              value);
     80 void                 _g_file_attribute_value_set_int64       (GFileAttributeValue *attr,
     81 							      gint64               value);
     82 void                 _g_file_attribute_value_set_object      (GFileAttributeValue *attr,
     83 							      GObject             *obj);
     84 
     85 
     86 GFileAttributeValue *_g_file_info_get_attribute_value (GFileInfo  *info,
     87 						       const char *attribute);
     88 
     89 #endif /* __G_FILE_ATTRIBUTE_PRIV_H__ */
     90