home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 January / maximum-cd-2011-01.iso / DiscContents / calibre-0.7.26.msi / file_1938 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-10-31  |  2.4 KB  |  54 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __docformat__ = 'restructuredtext en'
  5. import os
  6. import cPickle as pickle
  7. from twisted.python import log, failure
  8. from twisted.internet import defer
  9. from IPython.kernel.fcutil import find_furl
  10. from IPython.kernel.enginefc import IFCEngine
  11.  
  12. class EngineConnector(object):
  13.     
  14.     def __init__(self, tub):
  15.         self.tub = tub
  16.  
  17.     
  18.     def connect_to_controller(self, engine_service, furl_or_file):
  19.         if not self.tub.running:
  20.             self.tub.startService()
  21.         
  22.         self.engine_service = engine_service
  23.         self.engine_reference = IFCEngine(self.engine_service)
  24.         
  25.         try:
  26.             self.furl = find_furl(furl_or_file)
  27.         except ValueError:
  28.             return defer.fail(failure.Failure())
  29.  
  30.         d = self.tub.getReference(self.furl)
  31.         d.addCallbacks(self._register, self._log_failure)
  32.         return d
  33.  
  34.     
  35.     def _log_failure(self, reason):
  36.         log.err('EngineConnector: engine registration failed:')
  37.         log.err(reason)
  38.         return reason
  39.  
  40.     
  41.     def _register(self, rr):
  42.         self.remote_ref = rr
  43.         desired_id = self.engine_service.id
  44.         d = self.remote_ref.callRemote('register_engine', self.engine_reference, desired_id, os.getpid(), pickle.dumps(self.engine_service.properties, 2))
  45.         return d.addCallbacks(self._reference_sent, self._log_failure)
  46.  
  47.     
  48.     def _reference_sent(self, registration_dict):
  49.         self.engine_service.id = registration_dict['id']
  50.         log.msg('engine registration succeeded, got id: %r' % self.engine_service.id)
  51.         return self.engine_service.id
  52.  
  53.  
  54.