commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnue-common/src GComm.py commdrivers/socke...


From: Jason Cater
Subject: gnue/gnue-common/src GComm.py commdrivers/socke...
Date: Wed, 28 Nov 2001 10:56:25 -0500

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/11/28 10:56:25

Modified files:
        gnue-common/src: GComm.py 
        gnue-common/src/commdrivers/sockets: CommDriver.py 

Log message:
        synching machines

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/GComm.py.diff?cvsroot=OldCVS&tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/commdrivers/sockets/CommDriver.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gnue/gnue-common/src/GComm.py
diff -u gnue/gnue-common/src/GComm.py:1.7 gnue/gnue-common/src/GComm.py:1.8
--- gnue/gnue-common/src/GComm.py:1.7   Wed Nov  7 23:20:12 2001
+++ gnue/gnue-common/src/GComm.py       Wed Nov 28 10:56:25 2001
@@ -72,6 +72,12 @@
 class InvalidAdapter(Error):
   pass
 
+class AdapterInitializationError(Error):
+  pass
+
+class AdapterConfigurationError(AdapterInitializationError):
+  pass
+
 class NoClientAdapter(Error):
   pass
 
@@ -79,9 +85,6 @@
   pass
 
 class ProgrammingError(Error):
-  pass
-
-class InvalidAdapter(ProgrammingError):
   pass
 
 class InvalidService(ProgrammingError):
Index: gnue/gnue-common/src/commdrivers/sockets/CommDriver.py
diff -u gnue/gnue-common/src/commdrivers/sockets/CommDriver.py:1.2 
gnue/gnue-common/src/commdrivers/sockets/CommDriver.py:1.3
--- gnue/gnue-common/src/commdrivers/sockets/CommDriver.py:1.2  Mon Nov 26 
15:35:10 2001
+++ gnue/gnue-common/src/commdrivers/sockets/CommDriver.py      Wed Nov 28 
10:56:25 2001
@@ -31,8 +31,18 @@
 # (i.e., the client isn't designed to connect to, e.g., a PostgreSQL socket
 # interface).   
 #
-# Client and server parameters:
+# Server parameters:
 #
+#    socket      The filename of the file socket to create. 
+#                (e.g., /tmp/gnue/MyApp.socket) 
+#    host        The hostname or IP address of the service
+#    port        The port that the service is located on.
+#
+#                Note: If both socket and host,port are specified, then
+#                      both a sockets file and a TCP port are opened.
+#
+# Client parameters:
+#
 #    socket      The filename of the file socket.
 #                (e.g., /tmp/gnue/MyApp.socket) 
 #    ..or..
@@ -52,6 +62,7 @@
 from gnue.common.commdrivers._helpers import ObjectLibrarian
 
 from gnue.common.commdrivers import GCommBase
+from gnue.common import GComm
 
 import string
 import socket
@@ -66,28 +77,54 @@
     try:
       file = params['socket']
       if not len(file):
+
         raise KeyError
 
       if not hasattr(socket, 'AF_UNIX'): 
-        print "-" * 78 
-        print "Your configuration references a file-based sockets connection."
-        print "However, your operating system does not support file-based 
sockets."
-        print "-" * 78 
-        sys.exit()
+        raise GComm.AdapterConfigurationError,  \
+          "Your configuration references a file-based sockets connection.\n" \
+        + "However, your operating system does not support file-based sockets."
+
+      self._location = file
+
+      try:
 
-      self.__socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) 
-      self.__socket.connect(file) 
+        self.__socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) 
+        self.__socket.connect(file) 
 
+      except: 
+        raise AdapterInitializationError, \
+          "Unable to initialize the requested socket located at %s" % \
+             (file)
+
  
     except KeyError:
+
+      try: 
+
+        host = params['host']
+        port = params['port']
+        self._location = "%s:%s" % (host, port)
+
+        self.__socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
+        self.__socket.connect((host, port)) 
 
-      host = params['host']
-      port = params['port']
+      except KeyError: 
+        raise GComm.AdapterConfigurationError, \
+          "To use the sockets commdriver, you must specify either a sockets" \
+          + "\nfile or a host and port number.  Please see documentation."
 
-      self.__socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
-      self.__socket.connect((host, port)) 
+      except: 
+        raise AdapterInitializationError, \
+          "Unable to initialize the requested socket located at %s:%s" % \
+             (host,port)
 
 
+  def __repr__(self): 
+    return "<sockets.ClientAdapter [talking with %s] at %s>" % \
+        ( self._location, id(self) )
+
+
   def requestService(self, service, params={}):
     proxy = _ProxyObject(self, None, 
servicer=self._server.__getattr__(service))
 
@@ -122,6 +159,9 @@
   def __getattr__(self, attr):
     self.__dict__[attr] = _ProxyObject(self._server, self, name=attr)
     return self.__dict__[attr]
+
+  def __repr__(self): 
+    return "<sockets.ProxyObject at %s>" % (id(self))
 
   def __call__(self, *args, **params):
     self._server.runMethod(self, args, params):



reply via email to

[Prev in Thread] Current Thread [Next in Thread]