Development Team/Almanac/Sugar.presence: Difference between revisions
| Line 312: | Line 312: | ||
#### Method: __init__, initialize this AnnotateActivity instance | #### Method: __init__, initialize this AnnotateActivity instance | ||
def __init__(self, handle): | def __init__(self, handle): | ||
... | |||
#Joining activity needs to know which stream tubes are available for downloading | #Joining activity needs to know which stream tubes are available for downloading | ||
| Line 331: | Line 334: | ||
# Wait for a successful join before trying to get the document | # Wait for a successful join before trying to get the document | ||
self.connect("joined", self._joined_cb) | self.connect("joined", self._joined_cb) | ||
... | |||
######################## SETUP SERVER ON SHARING ACTIVITY #################################### | |||
#### Method _shared_cb, which is called when this activity is successfully | |||
# shared on a mesh channel. | |||
def _shared_cb(self, activity): | |||
# We initiated this activity and have now shared it, so by | |||
# definition we have the file. | |||
_logger.debug('SYSTEM:', '_shared_cb(): Activity being shared') | |||
self._want_document = False; | |||
self._share_document() | |||
#### Method: _share_document, which sets up an http server that will serve a specific file to | |||
# any joining activities. | |||
def _share_document(self): | |||
_logger.debug('SYSTEM', '_share_document() -- sharing file ' + str(object_path)) | |||
object_path = os.path.join(self.get_activity_root(), 'data', 'sample-shared-file.doc') | |||
_logger.debug('SYSTEM', '_share_document() -- Starting HTTP server on port '+str(self.port)) | |||
self._fileserver = AnnotateHTTPServer(("", self.port), object_path) | |||
# Make a tube for the server | |||
chan = self._shared_activity.telepathy_tubes_chan | |||
iface = chan[telepathy.CHANNEL_TYPE_TUBES] | |||
self._fileserver_tube_id = iface.OfferStreamTube(ANNOTATE_STREAM_SERVICE, | |||
{}, | |||
telepathy.SOCKET_ADDRESS_TYPE_IPV4, | |||
('127.0.0.1', dbus.UInt16(self.port)), | |||
telepathy.SOCKET_ACCESS_CONTROL_LOCALHOST, 0) | |||