Hi,

the siganture a(sv) is an array of structs with a string and a value,
not a Dict/HashTable. A hashtable has the signature a{av}.

Regards, Frederik

Am Donnerstag, den 19.02.2009, 00:32 -0300 schrieb Marcelo Boveto Shima:
> Hello!
> 
> I am trying to invoke some ConsoleKit methods and I succeed on
> almost every method, but not OpenSessionWithParameters.
> It has the signature a(sv) (1). I don´t know what I am doing wrong.
> I created a method with the same signature and it worked.
> 
> It works with python/dbus.
> 
> The code is:
> using GLib;
> 
> public class Sessiondb.Main : Object {
>     private const string CK_NAME = "org.freedesktop.ConsoleKit";
>     private const string CK_PATH = "/org/freedesktop/ConsoleKit";
>     private const string CK_INTERFACE = "org.freedesktop.ConsoleKit";
>     private const string CK_MANAGER_PATH =
> "/org/freedesktop/ConsoleKit/Manager";
>     private const string CK_MANAGER_INTERFACE =
> "org.freedesktop.ConsoleKit.Manager";
>     private const string CK_SEAT_INTERFACE =
> "org.freedesktop.ConsoleKit.Seat";
>     private const string CK_SESSION_INTERFACE =
> "org.freedesktop.ConsoleKit.Session";
> 
>     private dynamic DBus.Object ckmanager;
> 
>     public Main () {
>     }
>     public void run () {
>         try {
>             var conn = DBus.Bus.get (DBus.BusType.SYSTEM);
> 
>             this.ckmanager = conn.get_object
> ("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager",
> "org.freedesktop.ConsoleKit.Manager");
> 
>             HashTable<string,Value?> parameters = new
> HashTable<string,Value?>(str_hash,str_equal);
> 
>             Value sessiontype = Value (typeof(string));
>             sessiontype.set_string ("sessiondb");
>             parameters.insert("session-type" , sessiontype);
> 
>             string cookie = ckmanager.OpenSessionWithParameters
> (parameters);
> 
>             stderr.printf ("finished: %s \n", cookie);
> 
>         } catch (Error e) {
>             stderr.printf ("Oops: %s\n", e.message);
>         }
>     }
>     static int main (string[] args) {
>         var main = new Main ();
>         main.run ();
>         return 0;
>     }
> }
> 
> 
> The error is Method "OpenSessionWithParameters" with signature "a{sv}"
> on interface "org.freedesktop.ConsoleKit.Manager" doesn't exist.
> 
> Thanks
> Shima.
> 
> (1)
> http://people.freedesktop.org/~mccann/doc/ConsoleKit/ConsoleKit.html#Manager.OpenSessionWithParameters
> _______________________________________________
> Vala-list mailing list
> Vala-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/vala-list

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

_______________________________________________
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to