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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __docformat__ = 'restructuredtext en'
  5. from twisted.internet import defer
  6. from IPython.kernel.fcutil import Tub, UnauthenticatedTub
  7. from IPython.kernel.config import config_manager as kernel_config_manager
  8. from IPython.config.cutils import import_item
  9. from IPython.kernel.fcutil import find_furl
  10. co = kernel_config_manager.get_config_obj()
  11. client_co = co['client']
  12.  
  13. class ClientConnector(object):
  14.     
  15.     def __init__(self):
  16.         self._remote_refs = { }
  17.         self.tub = Tub()
  18.         self.tub.startService()
  19.  
  20.     
  21.     def get_reference(self, furl_or_file):
  22.         furl = find_furl(furl_or_file)
  23.         if furl in self._remote_refs:
  24.             d = defer.succeed(self._remote_refs[furl])
  25.         else:
  26.             d = self.tub.getReference(furl)
  27.             d.addCallback(self.save_ref, furl)
  28.         return d
  29.  
  30.     
  31.     def save_ref(self, ref, furl):
  32.         self._remote_refs[furl] = ref
  33.         return ref
  34.  
  35.     
  36.     def get_task_client(self, furl_or_file = ''):
  37.         task_co = client_co['client_interfaces']['task']
  38.         if furl_or_file:
  39.             ff = furl_or_file
  40.         else:
  41.             ff = task_co['furl_file']
  42.         return self.get_client(ff)
  43.  
  44.     
  45.     def get_multiengine_client(self, furl_or_file = ''):
  46.         task_co = client_co['client_interfaces']['multiengine']
  47.         if furl_or_file:
  48.             ff = furl_or_file
  49.         else:
  50.             ff = task_co['furl_file']
  51.         return self.get_client(ff)
  52.  
  53.     
  54.     def get_client(self, furl_or_file):
  55.         furl = find_furl(furl_or_file)
  56.         d = self.get_reference(furl)
  57.         
  58.         def wrap_remote_reference(rr):
  59.             d = rr.callRemote('get_client_name')
  60.             d.addCallback((lambda name: import_item(name)))
  61.             
  62.             def adapt(client_interface):
  63.                 client = client_interface(rr)
  64.                 client.tub = self.tub
  65.                 return client
  66.  
  67.             d.addCallback(adapt)
  68.             return d
  69.  
  70.         d.addCallback(wrap_remote_reference)
  71.         return d
  72.  
  73.  
  74.