f-spot r4664 - in trunk/GKeyFile: . generated
- From: sdelcroix svn gnome org
- To: svn-commits-list gnome org
- Subject: f-spot r4664 - in trunk/GKeyFile: . generated
- Date: Thu, 11 Dec 2008 09:21:51 +0000 (UTC)
Author: sdelcroix
Date: Thu Dec 11 09:21:50 2008
New Revision: 4664
URL: http://svn.gnome.org/viewvc/f-spot?rev=4664&view=rev
Log:
list getters
2008-12-11 Stephane Delcroix <sdelcroix novell com>
* GKeyFile.custom:
* sample.cs: change the GetIntegerList to use Marshal.Copy, map
GetBooleanList and GetDoubleList.
Modified:
trunk/GKeyFile/ChangeLog
trunk/GKeyFile/GKeyFile.custom
trunk/GKeyFile/generated/GKeyFile.cs
trunk/GKeyFile/sample.cs
Modified: trunk/GKeyFile/GKeyFile.custom
==============================================================================
--- trunk/GKeyFile/GKeyFile.custom (original)
+++ trunk/GKeyFile/GKeyFile.custom Thu Dec 11 09:21:50 2008
@@ -66,23 +66,28 @@
return GetStringList (group_name, key, out length);
}
-// [DllImport("libglib-2.0.dll")]
-// static extern unsafe bool g_key_file_get_boolean_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
-//
-// public unsafe bool GetBooleanList(string group_name, string key, out ulong length) {
-// IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
-// IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
-// UIntPtr native_length;
-// IntPtr error = IntPtr.Zero;
-// bool raw_ret = g_key_file_get_boolean_list(Handle, native_group_name, native_key, out native_length, out error);
-// bool ret = raw_ret;
-// GLib.Marshaller.Free (native_group_name);
-// GLib.Marshaller.Free (native_key);
-// length = (ulong) native_length;
-// if (error != IntPtr.Zero) throw new GLib.GException (error);
-// return ret;
-// }
-//
+ [DllImport("libglib-2.0.dll")]
+ static extern unsafe IntPtr g_key_file_get_boolean_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
+
+ public unsafe bool[] GetBooleanList(string group_name, string key) {
+ IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
+ IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
+ UIntPtr native_length;
+ IntPtr error = IntPtr.Zero;
+ IntPtr raw_ret = g_key_file_get_boolean_list(Handle, native_group_name, native_key, out native_length, out error);
+ ulong length = (ulong) native_length;
+ bool[] ret = new bool [(int)length];
+ int[] b_ret = new int [(int)length];
+ GLib.Marshaller.Free (native_group_name);
+ GLib.Marshaller.Free (native_key);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, b_ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
+ for (int i=0; i < (int)length; i++)
+ ret[i] = b_ret[i] != 0;
+ return ret;
+ }
+
[DllImport("libglib-2.0.dll")]
static extern unsafe IntPtr g_key_file_get_integer_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
@@ -96,28 +101,27 @@
int[] ret = new int[(int)length];
GLib.Marshaller.Free (native_group_name);
GLib.Marshaller.Free (native_key);
- for (int i=0; i < (int)length; i++)
- ret[i] = Marshal.ReadInt32 (raw_ret, i * Marshal.SizeOf(typeof(Int32)));
-
if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
return ret;
}
-// [DllImport("libglib-2.0.dll")]
-// static extern unsafe double g_key_file_get_double_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
-//
-// public unsafe double GetDoubleList(string group_name, string key, out ulong length) {
-// IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
-// IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
-// UIntPtr native_length;
-// IntPtr error = IntPtr.Zero;
-// double raw_ret = g_key_file_get_double_list(Handle, native_group_name, native_key, out native_length, out error);
-// double ret = raw_ret;
-// GLib.Marshaller.Free (native_group_name);
-// GLib.Marshaller.Free (native_key);
-// length = (ulong) native_length;
-// if (error != IntPtr.Zero) throw new GLib.GException (error);
-// return ret;
-// }
-
+ [DllImport("libglib-2.0.dll")]
+ static extern unsafe IntPtr g_key_file_get_double_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
+ public unsafe double[] GetDoubleList(string group_name, string key) {
+ IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
+ IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
+ UIntPtr native_length;
+ IntPtr error = IntPtr.Zero;
+ IntPtr raw_ret = g_key_file_get_double_list(Handle, native_group_name, native_key, out native_length, out error);
+ ulong length = (ulong)native_length;
+ double[] ret = new double[(int)length];
+ GLib.Marshaller.Free (native_group_name);
+ GLib.Marshaller.Free (native_key);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
+ return ret;
+ }
Modified: trunk/GKeyFile/generated/GKeyFile.cs
==============================================================================
--- trunk/GKeyFile/generated/GKeyFile.cs (original)
+++ trunk/GKeyFile/generated/GKeyFile.cs Thu Dec 11 09:21:50 2008
@@ -597,23 +597,28 @@
return GetStringList (group_name, key, out length);
}
-// [DllImport("libglib-2.0.dll")]
-// static extern unsafe bool g_key_file_get_boolean_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
-//
-// public unsafe bool GetBooleanList(string group_name, string key, out ulong length) {
-// IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
-// IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
-// UIntPtr native_length;
-// IntPtr error = IntPtr.Zero;
-// bool raw_ret = g_key_file_get_boolean_list(Handle, native_group_name, native_key, out native_length, out error);
-// bool ret = raw_ret;
-// GLib.Marshaller.Free (native_group_name);
-// GLib.Marshaller.Free (native_key);
-// length = (ulong) native_length;
-// if (error != IntPtr.Zero) throw new GLib.GException (error);
-// return ret;
-// }
-//
+ [DllImport("libglib-2.0.dll")]
+ static extern unsafe IntPtr g_key_file_get_boolean_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
+
+ public unsafe bool[] GetBooleanList(string group_name, string key) {
+ IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
+ IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
+ UIntPtr native_length;
+ IntPtr error = IntPtr.Zero;
+ IntPtr raw_ret = g_key_file_get_boolean_list(Handle, native_group_name, native_key, out native_length, out error);
+ ulong length = (ulong) native_length;
+ bool[] ret = new bool [(int)length];
+ int[] b_ret = new int [(int)length];
+ GLib.Marshaller.Free (native_group_name);
+ GLib.Marshaller.Free (native_key);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, b_ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
+ for (int i=0; i < (int)length; i++)
+ ret[i] = b_ret[i] != 0;
+ return ret;
+ }
+
[DllImport("libglib-2.0.dll")]
static extern unsafe IntPtr g_key_file_get_integer_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
@@ -627,31 +632,30 @@
int[] ret = new int[(int)length];
GLib.Marshaller.Free (native_group_name);
GLib.Marshaller.Free (native_key);
- for (int i=0; i < (int)length; i++)
- ret[i] = Marshal.ReadInt32 (raw_ret, i * Marshal.SizeOf(typeof(Int32)));
-
if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
return ret;
}
-// [DllImport("libglib-2.0.dll")]
-// static extern unsafe double g_key_file_get_double_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
-//
-// public unsafe double GetDoubleList(string group_name, string key, out ulong length) {
-// IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
-// IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
-// UIntPtr native_length;
-// IntPtr error = IntPtr.Zero;
-// double raw_ret = g_key_file_get_double_list(Handle, native_group_name, native_key, out native_length, out error);
-// double ret = raw_ret;
-// GLib.Marshaller.Free (native_group_name);
-// GLib.Marshaller.Free (native_key);
-// length = (ulong) native_length;
-// if (error != IntPtr.Zero) throw new GLib.GException (error);
-// return ret;
-// }
-
+ [DllImport("libglib-2.0.dll")]
+ static extern unsafe IntPtr g_key_file_get_double_list(IntPtr raw, IntPtr group_name, IntPtr key, out UIntPtr length, out IntPtr error);
+ public unsafe double[] GetDoubleList(string group_name, string key) {
+ IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup (group_name);
+ IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
+ UIntPtr native_length;
+ IntPtr error = IntPtr.Zero;
+ IntPtr raw_ret = g_key_file_get_double_list(Handle, native_group_name, native_key, out native_length, out error);
+ ulong length = (ulong)native_length;
+ double[] ret = new double[(int)length];
+ GLib.Marshaller.Free (native_group_name);
+ GLib.Marshaller.Free (native_key);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ Marshal.Copy (raw_ret, ret, 0, (int)length);
+ GLib.Marshaller.Free (raw_ret);
+ return ret;
+ }
#endregion
}
Modified: trunk/GKeyFile/sample.cs
==============================================================================
--- trunk/GKeyFile/sample.cs (original)
+++ trunk/GKeyFile/sample.cs Thu Dec 11 09:21:50 2008
@@ -74,6 +74,12 @@
foreach (int i in key_file.GetIntegerList ("Lists", "ints"))
Console.WriteLine (i);
+ foreach (double d in key_file.GetDoubleList ("Lists", "doubles"))
+ Console.WriteLine (d);
+
+ foreach (bool b in key_file.GetBooleanList ("Lists", "bools"))
+ Console.WriteLine (b);
+
key_file.Save ("mysamplefile2.ini");
key_file = new GKeyFile ("mysamplefile.ini");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]