Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/presence/Service.py
blob: 0a01da419ebcc1192a7e5bcf2d46037465d289ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import gobject
import dbus


class Service(gobject.GObject):

	_PRESENCE_SERVICE = "org.laptop.Presence"
	_SERVICE_DBUS_INTERFACE = "org.laptop.Presence.Service"

	def __init__(self, bus, new_obj_cb, del_obj_cb, object_path):
		gobject.GObject.__init__(self)
		self._object_path = object_path
		self._ps_new_object = new_obj_cb
		self._ps_del_object = del_obj_cb
		sobj = bus.get_object(self._PRESENCE_SERVICE, object_path)
		self._service = dbus.Interface(sobj, self._SERVICE_DBUS_INTERFACE)
		self._service.connect_to_signal('PropertyChanged', self._property_changed_cb)
		self._props = self._service.getProperties()

	def object_path(self):
		return self._object_path

	def _property_changed_cb(self, prop_list):
		self._props = self._service.getProperties()

	def get_published_value(self, key):
		value = self._service.getPublishedValue(key)

	def get_name(self):
		return self._props['name']

	def get_type(self):
		return self._props['type']

	def get_domain(self):
		return self._props['domain']

	def get_address(self):
		if self._props.has_key('address'):
			return self._props['address']
		return None

	def get_activity_id(self):
		if self._props.has_key('activityId'):
			return self._props['activityId']
		return None

	def get_port(self):
		if self._props.has_key('port'):
			return self._props['port']
		return None

	def get_source_address(self):
		if self._props.has_key('sourceAddress'):
			return self._props['sourceAddress']
		return None