// 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 DataInputStream : GLib.BufferedInputStream {

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

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

		public DataInputStream (GLib.InputStream base_stream) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (DataInputStream)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				if (base_stream != null) {
					names.Add ("base_stream");
					vals.Add (new GLib.Value (base_stream));
				}
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			Raw = g_data_input_stream_new(base_stream == null ? IntPtr.Zero : base_stream.Handle);
		}

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

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

		[GLib.Property ("byte-order")]
		public GLib.DataStreamByteOrder ByteOrder {
			get  {
				int raw_ret = g_data_input_stream_get_byte_order(Handle);
				GLib.DataStreamByteOrder ret = (GLib.DataStreamByteOrder) raw_ret;
				return ret;
			}
			set  {
				g_data_input_stream_set_byte_order(Handle, (int) value);
			}
		}

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

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

		[GLib.Property ("newline-type")]
		public GLib.DataStreamNewlineType NewlineType {
			get  {
				int raw_ret = g_data_input_stream_get_newline_type(Handle);
				GLib.DataStreamNewlineType ret = (GLib.DataStreamNewlineType) raw_ret;
				return ret;
			}
			set  {
				g_data_input_stream_set_newline_type(Handle, (int) value);
			}
		}


		// 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 (new List<GLib.AbiField>{ 
						new GLib.AbiField("_g_reserved1"
							, GLib.BufferedInputStream.class_abi.Fields
							, (uint) sizeof( IntPtr ) // _g_reserved1
							, null
							, "_g_reserved2"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_g_reserved2"
							, -1
							, (uint) sizeof( IntPtr ) // _g_reserved2
							, "_g_reserved1"
							, "_g_reserved3"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_g_reserved3"
							, -1
							, (uint) sizeof( IntPtr ) // _g_reserved3
							, "_g_reserved2"
							, "_g_reserved4"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_g_reserved4"
							, -1
							, (uint) sizeof( IntPtr ) // _g_reserved4
							, "_g_reserved3"
							, "_g_reserved5"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_g_reserved5"
							, -1
							, (uint) sizeof( IntPtr ) // _g_reserved5
							, "_g_reserved4"
							, null
							, (uint) sizeof(IntPtr)
							, 0
							),
					});

				return _class_abi;
			}
		}


		// End of the ABI representation.

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

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate byte d_g_data_input_stream_read_byte(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_byte g_data_input_stream_read_byte = FuncLoader.LoadFunction<d_g_data_input_stream_read_byte>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_byte"));

		public unsafe new byte ReadByte(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			byte raw_ret = g_data_input_stream_read_byte(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			byte ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate short d_g_data_input_stream_read_int16(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_int16 g_data_input_stream_read_int16 = FuncLoader.LoadFunction<d_g_data_input_stream_read_int16>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_int16"));

		public unsafe short ReadInt16(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			short raw_ret = g_data_input_stream_read_int16(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			short ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_g_data_input_stream_read_int32(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_int32 g_data_input_stream_read_int32 = FuncLoader.LoadFunction<d_g_data_input_stream_read_int32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_int32"));

		public unsafe int ReadInt32(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			int raw_ret = g_data_input_stream_read_int32(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			int ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate long d_g_data_input_stream_read_int64(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_int64 g_data_input_stream_read_int64 = FuncLoader.LoadFunction<d_g_data_input_stream_read_int64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_int64"));

		public unsafe long ReadInt64(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			long raw_ret = g_data_input_stream_read_int64(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			long ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_line(IntPtr raw, out UIntPtr length, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_line g_data_input_stream_read_line = FuncLoader.LoadFunction<d_g_data_input_stream_read_line>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_line"));

		public unsafe string ReadLine(out ulong length, GLib.Cancellable cancellable) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_line(Handle, out native_length, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_data_input_stream_read_line_async(IntPtr raw, int io_priority, IntPtr cancellable, GLibSharp.AsyncReadyCallbackNative cb, IntPtr user_data);
		static d_g_data_input_stream_read_line_async g_data_input_stream_read_line_async = FuncLoader.LoadFunction<d_g_data_input_stream_read_line_async>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_line_async"));

		public void ReadLineAsync(int io_priority, GLib.Cancellable cancellable, GLib.AsyncReadyCallback cb) {
			GLibSharp.AsyncReadyCallbackWrapper cb_wrapper = new GLibSharp.AsyncReadyCallbackWrapper (cb);
			cb_wrapper.PersistUntilCalled ();
			g_data_input_stream_read_line_async(Handle, io_priority, cancellable == null ? IntPtr.Zero : cancellable.Handle, cb_wrapper.NativeDelegate, IntPtr.Zero);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_line_finish(IntPtr raw, IntPtr result, out UIntPtr length, out IntPtr error);
		static d_g_data_input_stream_read_line_finish g_data_input_stream_read_line_finish = FuncLoader.LoadFunction<d_g_data_input_stream_read_line_finish>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_line_finish"));

		public unsafe string ReadLineFinish(GLib.IAsyncResult result, out ulong length) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_line_finish(Handle, result == null ? IntPtr.Zero : ((result is GLib.Object) ? (result as GLib.Object).Handle : (result as GLib.AsyncResultAdapter).Handle), out native_length, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_line_finish_utf8(IntPtr raw, IntPtr result, out UIntPtr length, out IntPtr error);
		static d_g_data_input_stream_read_line_finish_utf8 g_data_input_stream_read_line_finish_utf8 = FuncLoader.LoadFunction<d_g_data_input_stream_read_line_finish_utf8>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_line_finish_utf8"));

		public unsafe string ReadLineFinishUtf8(GLib.IAsyncResult result, out ulong length) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_line_finish_utf8(Handle, result == null ? IntPtr.Zero : ((result is GLib.Object) ? (result as GLib.Object).Handle : (result as GLib.AsyncResultAdapter).Handle), out native_length, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_line_utf8(IntPtr raw, out UIntPtr length, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_line_utf8 g_data_input_stream_read_line_utf8 = FuncLoader.LoadFunction<d_g_data_input_stream_read_line_utf8>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_line_utf8"));

		public unsafe string ReadLineUtf8(out ulong length, GLib.Cancellable cancellable) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_line_utf8(Handle, out native_length, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate ushort d_g_data_input_stream_read_uint16(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_uint16 g_data_input_stream_read_uint16 = FuncLoader.LoadFunction<d_g_data_input_stream_read_uint16>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_uint16"));

		public unsafe ushort ReadUint16(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			ushort raw_ret = g_data_input_stream_read_uint16(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			ushort ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate uint d_g_data_input_stream_read_uint32(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_uint32 g_data_input_stream_read_uint32 = FuncLoader.LoadFunction<d_g_data_input_stream_read_uint32>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_uint32"));

		public unsafe uint ReadUint32(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			uint raw_ret = g_data_input_stream_read_uint32(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			uint ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate ulong d_g_data_input_stream_read_uint64(IntPtr raw, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_uint64 g_data_input_stream_read_uint64 = FuncLoader.LoadFunction<d_g_data_input_stream_read_uint64>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_uint64"));

		public unsafe ulong ReadUint64(GLib.Cancellable cancellable) {
			IntPtr error = IntPtr.Zero;
			ulong raw_ret = g_data_input_stream_read_uint64(Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			ulong ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_until(IntPtr raw, IntPtr stop_chars, out UIntPtr length, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_until g_data_input_stream_read_until = FuncLoader.LoadFunction<d_g_data_input_stream_read_until>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_until"));

		public unsafe string ReadUntil(string stop_chars, out ulong length, GLib.Cancellable cancellable) {
			IntPtr native_stop_chars = GLib.Marshaller.StringToPtrGStrdup (stop_chars);
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_until(Handle, native_stop_chars, out native_length, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			GLib.Marshaller.Free (native_stop_chars);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_data_input_stream_read_until_async(IntPtr raw, IntPtr stop_chars, int io_priority, IntPtr cancellable, GLibSharp.AsyncReadyCallbackNative cb, IntPtr user_data);
		static d_g_data_input_stream_read_until_async g_data_input_stream_read_until_async = FuncLoader.LoadFunction<d_g_data_input_stream_read_until_async>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_until_async"));

		public void ReadUntilAsync(string stop_chars, int io_priority, GLib.Cancellable cancellable, GLib.AsyncReadyCallback cb) {
			IntPtr native_stop_chars = GLib.Marshaller.StringToPtrGStrdup (stop_chars);
			GLibSharp.AsyncReadyCallbackWrapper cb_wrapper = new GLibSharp.AsyncReadyCallbackWrapper (cb);
			cb_wrapper.PersistUntilCalled ();
			g_data_input_stream_read_until_async(Handle, native_stop_chars, io_priority, cancellable == null ? IntPtr.Zero : cancellable.Handle, cb_wrapper.NativeDelegate, IntPtr.Zero);
			GLib.Marshaller.Free (native_stop_chars);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_until_finish(IntPtr raw, IntPtr result, out UIntPtr length, out IntPtr error);
		static d_g_data_input_stream_read_until_finish g_data_input_stream_read_until_finish = FuncLoader.LoadFunction<d_g_data_input_stream_read_until_finish>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_until_finish"));

		public unsafe string ReadUntilFinish(GLib.IAsyncResult result, out ulong length) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_until_finish(Handle, result == null ? IntPtr.Zero : ((result is GLib.Object) ? (result as GLib.Object).Handle : (result as GLib.AsyncResultAdapter).Handle), out native_length, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_upto(IntPtr raw, IntPtr stop_chars, IntPtr stop_chars_len, out UIntPtr length, IntPtr cancellable, out IntPtr error);
		static d_g_data_input_stream_read_upto g_data_input_stream_read_upto = FuncLoader.LoadFunction<d_g_data_input_stream_read_upto>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_upto"));

		public unsafe string ReadUpto(string stop_chars, out ulong length, GLib.Cancellable cancellable) {
			IntPtr native_stop_chars = GLib.Marshaller.StringToPtrGStrdup (stop_chars);
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_upto(Handle, native_stop_chars, new IntPtr ((long) System.Text.Encoding.UTF8.GetByteCount (stop_chars)), out native_length, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			GLib.Marshaller.Free (native_stop_chars);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_g_data_input_stream_read_upto_async(IntPtr raw, IntPtr stop_chars, IntPtr stop_chars_len, int io_priority, IntPtr cancellable, GLibSharp.AsyncReadyCallbackNative cb, IntPtr user_data);
		static d_g_data_input_stream_read_upto_async g_data_input_stream_read_upto_async = FuncLoader.LoadFunction<d_g_data_input_stream_read_upto_async>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_upto_async"));

		public void ReadUptoAsync(string stop_chars, int io_priority, GLib.Cancellable cancellable, GLib.AsyncReadyCallback cb) {
			IntPtr native_stop_chars = GLib.Marshaller.StringToPtrGStrdup (stop_chars);
			GLibSharp.AsyncReadyCallbackWrapper cb_wrapper = new GLibSharp.AsyncReadyCallbackWrapper (cb);
			cb_wrapper.PersistUntilCalled ();
			g_data_input_stream_read_upto_async(Handle, native_stop_chars, new IntPtr ((long) System.Text.Encoding.UTF8.GetByteCount (stop_chars)), io_priority, cancellable == null ? IntPtr.Zero : cancellable.Handle, cb_wrapper.NativeDelegate, IntPtr.Zero);
			GLib.Marshaller.Free (native_stop_chars);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_g_data_input_stream_read_upto_finish(IntPtr raw, IntPtr result, out UIntPtr length, out IntPtr error);
		static d_g_data_input_stream_read_upto_finish g_data_input_stream_read_upto_finish = FuncLoader.LoadFunction<d_g_data_input_stream_read_upto_finish>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gio), "g_data_input_stream_read_upto_finish"));

		public unsafe string ReadUptoFinish(GLib.IAsyncResult result, out ulong length) {
			UIntPtr native_length;
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_data_input_stream_read_upto_finish(Handle, result == null ? IntPtr.Zero : ((result is GLib.Object) ? (result as GLib.Object).Handle : (result as GLib.AsyncResultAdapter).Handle), out native_length, out error);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			length = (ulong) native_length;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}


		// 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 (new List<GLib.AbiField>{ 
						new GLib.AbiField("priv"
							, GLib.BufferedInputStream.abi_info.Fields
							, (uint) sizeof( IntPtr ) // priv
							, null
							, null
							, (uint) sizeof(IntPtr)
							, 0
							),
					});

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
