Package VisionEgg :: Module PyroClient |
[frames] | no frames]

# Source Code for Module VisionEgg.PyroClient

     1  # The Vision Egg: PyroClient
     2  #
     3  # Copyright (C) 2001-2003 Andrew Straw.
     4  # Copyright (C) 2008 California Insitute of Technology
     5  # Author: Andrew Straw <astraw@users.sourceforge.net>
     6  # URL: <http://www.visionegg.org/>
     7  #
     8  # Distributed under the terms of the GNU Lesser General Public License
     9  # (LGPL). See LICENSE.TXT that came with this file.
    10  #
    11  # $Id$
    12
    13  """
    14  Python Remote Objects support - Client side.
    15
    16  """
    17
    18  import socket
    19  import VisionEgg
    20
    21  import logging                              # available in Python 2.3
    22
    23  __version__ = VisionEgg.release_name
    24  __cvs__ = '$Revision$'.split()[1]
    25  __date__ = ' '.join('$Date$'.split()[1:3])
    26  __author__ = 'Andrew Straw <astraw@users.sourceforge.net>'
    27
    28  import Pyro.core
    29
    30 -class PyroClient:
    31      """Simplifies getting PyroControllers from a remote computer."""
    32 -    def __init__(self,server_hostname='',server_port=7766):
    33          """Initialize Pyro client."""
    34          Pyro.core.initClient()
    35          try:
    36              self.server_hostname = socket.getfqdn(server_hostname)
    37          except Exception, x:
    38              logger = logging.getLogger('VisionEgg.PyroClient')
    39              logger.warning("while getting fully qualified domain name: %s: %s"%
    40                             (str(x.__class__),str(x)))
    41              self.server_hostname = server_hostname
    42          self.server_port = server_port
    43
    44 -    def get(self,name):
    45          """Return a remote Pyro object being served by Pyro server."""
    46          URI = "PYROLOC://%s:%d/%s" % (self.server_hostname, self.server_port, name)
    47          return Pyro.core.getProxyForURI(URI)
    48