Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/p2p/Service.py
blob: 8bc73f719763118b35965b933c2bc85a626b830a (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
import presence

class Service(object):
	def __init__(self, name, stype, port, group_address = None):
		self._name = name
		self._stype = stype
		self._port = int(port)
		self._address = ''
		self._group_address = group_address

	def get_name(self):
		return self._name
	
	def get_type(self):
		return self._stype

	def get_port(self):
		return self._port

	def set_port(self, port):
		self._port = port

	def get_address(self):
		return self._address

	def get_group_address(self):
		return self._group_address

	def set_address(self, address):
		self._address = address

	def set_group_address(self, group_address):
		self._group_address = group_address

	def is_multicast(self):
		return self._group_address != None
	
	def register(self, group):
		pannounce = presence.PresenceAnnounce()
		if self._group_address:
			pannounce.register_service(self._name, self._port, self._stype,
									   group_address = self._group_address)
		else:
			pannounce.register_service(self._name, self._port, self._stype)
		# Notify the group that we're registering a new service
		group.notify_service_registered(self)