home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __docformat__ = 'restructuredtext en'
- import os
- import cPickle as pickle
- from twisted.python import log, failure
- from twisted.internet import defer
- from IPython.kernel.fcutil import find_furl
- from IPython.kernel.enginefc import IFCEngine
-
- class EngineConnector(object):
-
- def __init__(self, tub):
- self.tub = tub
-
-
- def connect_to_controller(self, engine_service, furl_or_file):
- if not self.tub.running:
- self.tub.startService()
-
- self.engine_service = engine_service
- self.engine_reference = IFCEngine(self.engine_service)
-
- try:
- self.furl = find_furl(furl_or_file)
- except ValueError:
- return defer.fail(failure.Failure())
-
- d = self.tub.getReference(self.furl)
- d.addCallbacks(self._register, self._log_failure)
- return d
-
-
- def _log_failure(self, reason):
- log.err('EngineConnector: engine registration failed:')
- log.err(reason)
- return reason
-
-
- def _register(self, rr):
- self.remote_ref = rr
- desired_id = self.engine_service.id
- d = self.remote_ref.callRemote('register_engine', self.engine_reference, desired_id, os.getpid(), pickle.dumps(self.engine_service.properties, 2))
- return d.addCallbacks(self._reference_sent, self._log_failure)
-
-
- def _reference_sent(self, registration_dict):
- self.engine_service.id = registration_dict['id']
- log.msg('engine registration succeeded, got id: %r' % self.engine_service.id)
- return self.engine_service.id
-
-
-