// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace GLib {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;
	using static GLib.AbiStructExtension;

#region Autogenerated code
	public partial class FileInfo : GLib.Object {

		public FileInfo (IntPtr raw) : base(raw) {}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_new();
		static d_g_file_info_new g_file_info_new = FuncLoader.LoadFunction<d_g_file_info_new>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_new"));

		public FileInfo () : base (IntPtr.Zero)
		{
			if (GetType () != typeof (FileInfo)) {
				CreateNativeObject (Array.Empty<string> (), Array.Empty<GLib.Value> ());
				return;
			}
			Raw = g_file_info_new();
		}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _class_abi = null;
		static public unsafe new GLib.AbiStruct class_abi {
			get {
				if (_class_abi == null)
					_class_abi = new GLib.AbiStruct (GLib.Object.class_abi.Fields);

				return _class_abi;
			}
		}


		// End of the ABI representation.

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_clear_status(IntPtr raw);
		static d_g_file_info_clear_status g_file_info_clear_status = FuncLoader.LoadFunction<d_g_file_info_clear_status>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_clear_status"));

		public void ClearStatus() {
			g_file_info_clear_status(Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_copy_into(IntPtr raw, IntPtr dest_info);
		static d_g_file_info_copy_into g_file_info_copy_into = FuncLoader.LoadFunction<d_g_file_info_copy_into>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_copy_into"));

		public void CopyInto(GLib.FileInfo dest_info) {
			g_file_info_copy_into(Handle, dest_info == null ? IntPtr.Zero : dest_info.Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_dup(IntPtr raw);
		static d_g_file_info_dup g_file_info_dup = FuncLoader.LoadFunction<d_g_file_info_dup>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_dup"));

		public GLib.FileInfo Dup() {
			IntPtr raw_ret = g_file_info_dup(Handle);
			GLib.FileInfo ret = GLib.Object.GetObject(raw_ret) as GLib.FileInfo;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_attribute_as_string(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_as_string g_file_info_get_attribute_as_string = FuncLoader.LoadFunction<d_g_file_info_get_attribute_as_string>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_as_string"));

		public string GetAttributeAsString(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr raw_ret = g_file_info_get_attribute_as_string(Handle, native_attribute);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_get_attribute_boolean(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_boolean g_file_info_get_attribute_boolean = FuncLoader.LoadFunction<d_g_file_info_get_attribute_boolean>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_boolean"));

		public bool GetAttributeBoolean(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			bool raw_ret = g_file_info_get_attribute_boolean(Handle, native_attribute);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_attribute_byte_string(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_byte_string g_file_info_get_attribute_byte_string = FuncLoader.LoadFunction<d_g_file_info_get_attribute_byte_string>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_byte_string"));

		public string GetAttributeByteString(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr raw_ret = g_file_info_get_attribute_byte_string(Handle, native_attribute);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_get_attribute_data(IntPtr raw, IntPtr attribute, out int type, IntPtr value_pp, out int status);
		static d_g_file_info_get_attribute_data g_file_info_get_attribute_data = FuncLoader.LoadFunction<d_g_file_info_get_attribute_data>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_data"));

		public bool GetAttributeData(string attribute, out GLib.FileAttributeType type, IntPtr value_pp, out GLib.FileAttributeStatus status) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			int native_type;
			int native_status;
			bool raw_ret = g_file_info_get_attribute_data(Handle, native_attribute, out native_type, value_pp, out native_status);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			type = (GLib.FileAttributeType) native_type;
			status = (GLib.FileAttributeStatus) native_status;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_file_info_get_attribute_int32(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_int32 g_file_info_get_attribute_int32 = FuncLoader.LoadFunction<d_g_file_info_get_attribute_int32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_int32"));

		public int GetAttributeInt(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			int raw_ret = g_file_info_get_attribute_int32(Handle, native_attribute);
			int ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate long d_g_file_info_get_attribute_int64(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_int64 g_file_info_get_attribute_int64 = FuncLoader.LoadFunction<d_g_file_info_get_attribute_int64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_int64"));

		public long GetAttributeLong(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			long raw_ret = g_file_info_get_attribute_int64(Handle, native_attribute);
			long ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_attribute_object(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_object g_file_info_get_attribute_object = FuncLoader.LoadFunction<d_g_file_info_get_attribute_object>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_object"));

		public GLib.Object GetAttributeObject(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr raw_ret = g_file_info_get_attribute_object(Handle, native_attribute);
			GLib.Object ret = GLib.Object.GetObject (raw_ret);
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_file_info_get_attribute_status(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_status g_file_info_get_attribute_status = FuncLoader.LoadFunction<d_g_file_info_get_attribute_status>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_status"));

		public GLib.FileAttributeStatus GetAttributeStatus(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			int raw_ret = g_file_info_get_attribute_status(Handle, native_attribute);
			GLib.FileAttributeStatus ret = (GLib.FileAttributeStatus) raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_attribute_string(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_string g_file_info_get_attribute_string = FuncLoader.LoadFunction<d_g_file_info_get_attribute_string>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_string"));

		public string GetAttributeString(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr raw_ret = g_file_info_get_attribute_string(Handle, native_attribute);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_attribute_stringv(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_stringv g_file_info_get_attribute_stringv = FuncLoader.LoadFunction<d_g_file_info_get_attribute_stringv>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_stringv"));

		public string GetAttributeStringv(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr raw_ret = g_file_info_get_attribute_stringv(Handle, native_attribute);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_file_info_get_attribute_type(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_type g_file_info_get_attribute_type = FuncLoader.LoadFunction<d_g_file_info_get_attribute_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_type"));

		public GLib.FileAttributeType GetAttributeType(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			int raw_ret = g_file_info_get_attribute_type(Handle, native_attribute);
			GLib.FileAttributeType ret = (GLib.FileAttributeType) raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate uint d_g_file_info_get_attribute_uint32(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_uint32 g_file_info_get_attribute_uint32 = FuncLoader.LoadFunction<d_g_file_info_get_attribute_uint32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_uint32"));

		public uint GetAttributeUInt(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			uint raw_ret = g_file_info_get_attribute_uint32(Handle, native_attribute);
			uint ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate ulong d_g_file_info_get_attribute_uint64(IntPtr raw, IntPtr attribute);
		static d_g_file_info_get_attribute_uint64 g_file_info_get_attribute_uint64 = FuncLoader.LoadFunction<d_g_file_info_get_attribute_uint64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_attribute_uint64"));

		public ulong GetAttributeULong(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			ulong raw_ret = g_file_info_get_attribute_uint64(Handle, native_attribute);
			ulong ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_content_type(IntPtr raw);
		static d_g_file_info_get_content_type g_file_info_get_content_type = FuncLoader.LoadFunction<d_g_file_info_get_content_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_content_type"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_content_type(IntPtr raw, IntPtr content_type);
		static d_g_file_info_set_content_type g_file_info_set_content_type = FuncLoader.LoadFunction<d_g_file_info_set_content_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_content_type"));

		public string ContentType { 
			get {
				IntPtr raw_ret = g_file_info_get_content_type(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				g_file_info_set_content_type(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_deletion_date(IntPtr raw);
		static d_g_file_info_get_deletion_date g_file_info_get_deletion_date = FuncLoader.LoadFunction<d_g_file_info_get_deletion_date>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_deletion_date"));

		public GLib.DateTime DeletionDate { 
			get {
				IntPtr raw_ret = g_file_info_get_deletion_date(Handle);
				GLib.DateTime ret = new GLib.DateTime(raw_ret);
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_display_name(IntPtr raw);
		static d_g_file_info_get_display_name g_file_info_get_display_name = FuncLoader.LoadFunction<d_g_file_info_get_display_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_display_name"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_display_name(IntPtr raw, IntPtr display_name);
		static d_g_file_info_set_display_name g_file_info_set_display_name = FuncLoader.LoadFunction<d_g_file_info_set_display_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_display_name"));

		public string DisplayName { 
			get {
				IntPtr raw_ret = g_file_info_get_display_name(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				g_file_info_set_display_name(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_edit_name(IntPtr raw);
		static d_g_file_info_get_edit_name g_file_info_get_edit_name = FuncLoader.LoadFunction<d_g_file_info_get_edit_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_edit_name"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_edit_name(IntPtr raw, IntPtr edit_name);
		static d_g_file_info_set_edit_name g_file_info_set_edit_name = FuncLoader.LoadFunction<d_g_file_info_set_edit_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_edit_name"));

		public string EditName { 
			get {
				IntPtr raw_ret = g_file_info_get_edit_name(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				g_file_info_set_edit_name(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_etag(IntPtr raw);
		static d_g_file_info_get_etag g_file_info_get_etag = FuncLoader.LoadFunction<d_g_file_info_get_etag>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_etag"));

		public string Etag { 
			get {
				IntPtr raw_ret = g_file_info_get_etag(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_file_info_get_file_type(IntPtr raw);
		static d_g_file_info_get_file_type g_file_info_get_file_type = FuncLoader.LoadFunction<d_g_file_info_get_file_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_file_type"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_file_type(IntPtr raw, int type);
		static d_g_file_info_set_file_type g_file_info_set_file_type = FuncLoader.LoadFunction<d_g_file_info_set_file_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_file_type"));

		public GLib.FileType FileType { 
			get {
				int raw_ret = g_file_info_get_file_type(Handle);
				GLib.FileType ret = (GLib.FileType) raw_ret;
				return ret;
			}
			set {
				g_file_info_set_file_type(Handle, (int) value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_icon(IntPtr raw);
		static d_g_file_info_get_icon g_file_info_get_icon = FuncLoader.LoadFunction<d_g_file_info_get_icon>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_icon"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_icon(IntPtr raw, IntPtr icon);
		static d_g_file_info_set_icon g_file_info_set_icon = FuncLoader.LoadFunction<d_g_file_info_set_icon>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_icon"));

		public GLib.IIcon Icon { 
			get {
				IntPtr raw_ret = g_file_info_get_icon(Handle);
				GLib.IIcon ret = GLib.IconAdapter.GetObject (raw_ret, false);
				return ret;
			}
			set {
				g_file_info_set_icon(Handle, value == null ? IntPtr.Zero : ((value is GLib.Object) ? (value as GLib.Object).Handle : (value as GLib.IconAdapter).Handle));
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_get_is_backup(IntPtr raw);
		static d_g_file_info_get_is_backup g_file_info_get_is_backup = FuncLoader.LoadFunction<d_g_file_info_get_is_backup>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_is_backup"));

		public bool IsBackup { 
			get {
				bool raw_ret = g_file_info_get_is_backup(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_get_is_hidden(IntPtr raw);
		static d_g_file_info_get_is_hidden g_file_info_get_is_hidden = FuncLoader.LoadFunction<d_g_file_info_get_is_hidden>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_is_hidden"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_is_hidden(IntPtr raw, bool is_hidden);
		static d_g_file_info_set_is_hidden g_file_info_set_is_hidden = FuncLoader.LoadFunction<d_g_file_info_set_is_hidden>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_is_hidden"));

		public bool IsHidden { 
			get {
				bool raw_ret = g_file_info_get_is_hidden(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set {
				g_file_info_set_is_hidden(Handle, value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_get_is_symlink(IntPtr raw);
		static d_g_file_info_get_is_symlink g_file_info_get_is_symlink = FuncLoader.LoadFunction<d_g_file_info_get_is_symlink>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_is_symlink"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_is_symlink(IntPtr raw, bool is_symlink);
		static d_g_file_info_set_is_symlink g_file_info_set_is_symlink = FuncLoader.LoadFunction<d_g_file_info_set_is_symlink>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_is_symlink"));

		public bool IsSymlink { 
			get {
				bool raw_ret = g_file_info_get_is_symlink(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set {
				g_file_info_set_is_symlink(Handle, value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_get_modification_time(IntPtr raw, IntPtr result);
		static d_g_file_info_get_modification_time g_file_info_get_modification_time = FuncLoader.LoadFunction<d_g_file_info_get_modification_time>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_modification_time"));

		public void GetModificationTime(IntPtr result) {
			g_file_info_get_modification_time(Handle, result);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_name(IntPtr raw);
		static d_g_file_info_get_name g_file_info_get_name = FuncLoader.LoadFunction<d_g_file_info_get_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_name"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_name(IntPtr raw, IntPtr name);
		static d_g_file_info_set_name g_file_info_set_name = FuncLoader.LoadFunction<d_g_file_info_set_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_name"));

		public string Name { 
			get {
				IntPtr raw_ret = g_file_info_get_name(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				g_file_info_set_name(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate long d_g_file_info_get_size(IntPtr raw);
		static d_g_file_info_get_size g_file_info_get_size = FuncLoader.LoadFunction<d_g_file_info_get_size>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_size"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_size(IntPtr raw, long size);
		static d_g_file_info_set_size g_file_info_set_size = FuncLoader.LoadFunction<d_g_file_info_set_size>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_size"));

		public long Size { 
			get {
				long raw_ret = g_file_info_get_size(Handle);
				long ret = raw_ret;
				return ret;
			}
			set {
				g_file_info_set_size(Handle, value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_file_info_get_sort_order(IntPtr raw);
		static d_g_file_info_get_sort_order g_file_info_get_sort_order = FuncLoader.LoadFunction<d_g_file_info_get_sort_order>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_sort_order"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_sort_order(IntPtr raw, int sort_order);
		static d_g_file_info_set_sort_order g_file_info_set_sort_order = FuncLoader.LoadFunction<d_g_file_info_set_sort_order>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_sort_order"));

		public int SortOrder { 
			get {
				int raw_ret = g_file_info_get_sort_order(Handle);
				int ret = raw_ret;
				return ret;
			}
			set {
				g_file_info_set_sort_order(Handle, value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_symbolic_icon(IntPtr raw);
		static d_g_file_info_get_symbolic_icon g_file_info_get_symbolic_icon = FuncLoader.LoadFunction<d_g_file_info_get_symbolic_icon>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_symbolic_icon"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_symbolic_icon(IntPtr raw, IntPtr icon);
		static d_g_file_info_set_symbolic_icon g_file_info_set_symbolic_icon = FuncLoader.LoadFunction<d_g_file_info_set_symbolic_icon>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_symbolic_icon"));

		public GLib.IIcon SymbolicIcon { 
			get {
				IntPtr raw_ret = g_file_info_get_symbolic_icon(Handle);
				GLib.IIcon ret = GLib.IconAdapter.GetObject (raw_ret, false);
				return ret;
			}
			set {
				g_file_info_set_symbolic_icon(Handle, value == null ? IntPtr.Zero : ((value is GLib.Object) ? (value as GLib.Object).Handle : (value as GLib.IconAdapter).Handle));
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_symlink_target(IntPtr raw);
		static d_g_file_info_get_symlink_target g_file_info_get_symlink_target = FuncLoader.LoadFunction<d_g_file_info_get_symlink_target>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_symlink_target"));

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_symlink_target(IntPtr raw, IntPtr symlink_target);
		static d_g_file_info_set_symlink_target g_file_info_set_symlink_target = FuncLoader.LoadFunction<d_g_file_info_set_symlink_target>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_symlink_target"));

		public string SymlinkTarget { 
			get {
				IntPtr raw_ret = g_file_info_get_symlink_target(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				g_file_info_set_symlink_target(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_get_type();
		static d_g_file_info_get_type g_file_info_get_type = FuncLoader.LoadFunction<d_g_file_info_get_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_get_type"));

		public static new GLib.GType GType { 
			get {
				IntPtr raw_ret = g_file_info_get_type();
				GLib.GType ret = new GLib.GType(raw_ret);
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_has_attribute(IntPtr raw, IntPtr attribute);
		static d_g_file_info_has_attribute g_file_info_has_attribute = FuncLoader.LoadFunction<d_g_file_info_has_attribute>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_has_attribute"));

		public bool HasAttribute(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			bool raw_ret = g_file_info_has_attribute(Handle, native_attribute);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_has_namespace(IntPtr raw, IntPtr name_space);
		static d_g_file_info_has_namespace g_file_info_has_namespace = FuncLoader.LoadFunction<d_g_file_info_has_namespace>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_has_namespace"));

		public bool HasNamespace(string name_space) {
			IntPtr native_name_space = GLib.Marshaller.StringToPtrGStrdup (name_space);
			bool raw_ret = g_file_info_has_namespace(Handle, native_name_space);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_name_space);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_file_info_list_attributes(IntPtr raw, IntPtr name_space);
		static d_g_file_info_list_attributes g_file_info_list_attributes = FuncLoader.LoadFunction<d_g_file_info_list_attributes>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_list_attributes"));

		public string ListAttributes(string name_space) {
			IntPtr native_name_space = GLib.Marshaller.StringToPtrGStrdup (name_space);
			IntPtr raw_ret = g_file_info_list_attributes(Handle, native_name_space);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			GLib.Marshaller.Free (native_name_space);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_remove_attribute(IntPtr raw, IntPtr attribute);
		static d_g_file_info_remove_attribute g_file_info_remove_attribute = FuncLoader.LoadFunction<d_g_file_info_remove_attribute>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_remove_attribute"));

		public void RemoveAttribute(string attribute) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_remove_attribute(Handle, native_attribute);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute(IntPtr raw, IntPtr attribute, int type, IntPtr value_p);
		static d_g_file_info_set_attribute g_file_info_set_attribute = FuncLoader.LoadFunction<d_g_file_info_set_attribute>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute"));

		public void SetAttribute(string attribute, GLib.FileAttributeType type, IntPtr value_p) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute(Handle, native_attribute, (int) type, value_p);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_boolean(IntPtr raw, IntPtr attribute, bool attr_value);
		static d_g_file_info_set_attribute_boolean g_file_info_set_attribute_boolean = FuncLoader.LoadFunction<d_g_file_info_set_attribute_boolean>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_boolean"));

		public void SetAttributeBoolean(string attribute, bool attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_boolean(Handle, native_attribute, attr_value);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_byte_string(IntPtr raw, IntPtr attribute, IntPtr attr_value);
		static d_g_file_info_set_attribute_byte_string g_file_info_set_attribute_byte_string = FuncLoader.LoadFunction<d_g_file_info_set_attribute_byte_string>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_byte_string"));

		public void SetAttributeByteString(string attribute, string attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr native_attr_value = GLib.Marshaller.StringToPtrGStrdup (attr_value);
			g_file_info_set_attribute_byte_string(Handle, native_attribute, native_attr_value);
			GLib.Marshaller.Free (native_attribute);
			GLib.Marshaller.Free (native_attr_value);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_int32(IntPtr raw, IntPtr attribute, int attr_value);
		static d_g_file_info_set_attribute_int32 g_file_info_set_attribute_int32 = FuncLoader.LoadFunction<d_g_file_info_set_attribute_int32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_int32"));

		public void SetAttributeInt(string attribute, int attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_int32(Handle, native_attribute, attr_value);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_int64(IntPtr raw, IntPtr attribute, long attr_value);
		static d_g_file_info_set_attribute_int64 g_file_info_set_attribute_int64 = FuncLoader.LoadFunction<d_g_file_info_set_attribute_int64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_int64"));

		public void SetAttributeLong(string attribute, long attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_int64(Handle, native_attribute, attr_value);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_mask(IntPtr raw, IntPtr mask);
		static d_g_file_info_set_attribute_mask g_file_info_set_attribute_mask = FuncLoader.LoadFunction<d_g_file_info_set_attribute_mask>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_mask"));

		public GLib.FileAttributeMatcher AttributeMask { 
			set {
				g_file_info_set_attribute_mask(Handle, value == null ? IntPtr.Zero : value.Handle);
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_object(IntPtr raw, IntPtr attribute, IntPtr attr_value);
		static d_g_file_info_set_attribute_object g_file_info_set_attribute_object = FuncLoader.LoadFunction<d_g_file_info_set_attribute_object>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_object"));

		public void SetAttributeObject(string attribute, GLib.Object attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_object(Handle, native_attribute, attr_value == null ? IntPtr.Zero : attr_value.Handle);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_g_file_info_set_attribute_status(IntPtr raw, IntPtr attribute, int status);
		static d_g_file_info_set_attribute_status g_file_info_set_attribute_status = FuncLoader.LoadFunction<d_g_file_info_set_attribute_status>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_status"));

		public bool SetAttributeStatus(string attribute, GLib.FileAttributeStatus status) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			bool raw_ret = g_file_info_set_attribute_status(Handle, native_attribute, (int) status);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_attribute);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_string(IntPtr raw, IntPtr attribute, IntPtr attr_value);
		static d_g_file_info_set_attribute_string g_file_info_set_attribute_string = FuncLoader.LoadFunction<d_g_file_info_set_attribute_string>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_string"));

		public void SetAttributeString(string attribute, string attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			IntPtr native_attr_value = GLib.Marshaller.StringToPtrGStrdup (attr_value);
			g_file_info_set_attribute_string(Handle, native_attribute, native_attr_value);
			GLib.Marshaller.Free (native_attribute);
			GLib.Marshaller.Free (native_attr_value);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_stringv(IntPtr raw, IntPtr attribute, IntPtr attr_value);
		static d_g_file_info_set_attribute_stringv g_file_info_set_attribute_stringv = FuncLoader.LoadFunction<d_g_file_info_set_attribute_stringv>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_stringv"));

		public void SetAttributeStringv(string attribute, string attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_stringv(Handle, native_attribute, GLib.Marshaller.StringToPtrGStrdup(attr_value));
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_uint32(IntPtr raw, IntPtr attribute, uint attr_value);
		static d_g_file_info_set_attribute_uint32 g_file_info_set_attribute_uint32 = FuncLoader.LoadFunction<d_g_file_info_set_attribute_uint32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_uint32"));

		public void SetAttributeUInt(string attribute, uint attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_uint32(Handle, native_attribute, attr_value);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_attribute_uint64(IntPtr raw, IntPtr attribute, ulong attr_value);
		static d_g_file_info_set_attribute_uint64 g_file_info_set_attribute_uint64 = FuncLoader.LoadFunction<d_g_file_info_set_attribute_uint64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_attribute_uint64"));

		public void SetAttributeULong(string attribute, ulong attr_value) {
			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
			g_file_info_set_attribute_uint64(Handle, native_attribute, attr_value);
			GLib.Marshaller.Free (native_attribute);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_set_modification_time(IntPtr raw, IntPtr mtime);
		static d_g_file_info_set_modification_time g_file_info_set_modification_time = FuncLoader.LoadFunction<d_g_file_info_set_modification_time>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_set_modification_time"));

		public void SetModificationTime(IntPtr mtime) {
			g_file_info_set_modification_time(Handle, mtime);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_file_info_unset_attribute_mask(IntPtr raw);
		static d_g_file_info_unset_attribute_mask g_file_info_unset_attribute_mask = FuncLoader.LoadFunction<d_g_file_info_unset_attribute_mask>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_file_info_unset_attribute_mask"));

		public void UnsetAttributeMask() {
			g_file_info_unset_attribute_mask(Handle);
		}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _abi_info = null;
		static public unsafe new GLib.AbiStruct abi_info {
			get {
				if (_abi_info == null)
					_abi_info = new GLib.AbiStruct (GLib.Object.abi_info.Fields);

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
