Integrate neard post 0.6 changes - handover code
[profile/ivi/neard.git] / test / simple-agent
1 #!/usr/bin/python
2
3 import gobject
4
5 import dbus
6 import dbus.service
7 import dbus.mainloop.glib
8 import sys
9
10 class NDEFAgent(dbus.service.Object):
11
12         @dbus.service.method("org.neard.NDEFAgent",
13                                         in_signature='', out_signature='')
14         def Release(self):
15                 print "Release"
16                 mainloop.quit()
17
18         @dbus.service.method("org.neard.NDEFAgent",
19                                         in_signature='a{sv}',
20                                         out_signature='')
21         def GetNDEF(self, fields):
22                 print "GetNDEF"
23
24                 if fields.has_key("Records"):
25                         for path in fields["Records"]:
26                                 print "Record path %s" % (path)
27
28                 return
29
30         @dbus.service.method("org.neard.NDEFAgent",
31                                         in_signature='', out_signature='')
32         def Cancel(self):
33                 print "Cancel"
34
35 def print_usage():
36         print "Usage:"
37         print "For NDEF agent:"
38         print "%s NDEF Type=<record type>" % (sys.argv[0])
39         print "Help: %s help" % (sys.argv[0])
40         sys.exit(1)
41
42 if __name__ == '__main__':
43         if len(sys.argv) == 2 and sys.argv[1] == "help":
44                 print_usage()
45
46         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
47
48         bus = dbus.SystemBus()
49         manager = dbus.Interface(bus.get_object('org.neard', "/"),
50                                         'org.neard.Manager')
51
52         if len(sys.argv) > 2:   
53                 if sys.argv[1] == "NDEF":
54                         path = "/test/ndef/agent"
55                         object = NDEFAgent(bus, path)
56                         rec_type = sys.argv[2].replace("Type=", "", 1)                  
57
58                         manager.RegisterNDEFAgent(path, rec_type)
59
60                         mainloop = gobject.MainLoop()
61                         mainloop.run()