home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / rmi / transport / Transport.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  3.1 KB  |  100 lines

  1. package sun.rmi.transport;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectOutput;
  5. import java.io.PrintStream;
  6. import java.rmi.MarshalException;
  7. import java.rmi.NoSuchObjectException;
  8. import java.rmi.Remote;
  9. import java.rmi.RemoteException;
  10. import java.rmi.server.LogStream;
  11. import java.rmi.server.ObjID;
  12. import java.rmi.server.RemoteCall;
  13. import java.rmi.server.RemoteServer;
  14. import java.rmi.server.ServerNotActiveException;
  15. import sun.rmi.server.Dispatcher;
  16.  
  17. public abstract class Transport {
  18.    static int logLevel = LogStream.parseLevel(Utils.getProperty("sun.rmi.transport.logLevel"));
  19.  
  20.    public abstract Channel getChannel(Endpoint var1);
  21.  
  22.    public abstract Endpoint thisEndpoint();
  23.  
  24.    public void exportObject(ObjID var1, Target var2) throws RemoteException {
  25.       ObjectTable.putTarget(var1, var2);
  26.    }
  27.  
  28.    public boolean serviceCall(RemoteCall var1) {
  29.       Dispatcher var2;
  30.       Remote var3;
  31.       try {
  32.          if (logLevel >= 20) {
  33.             LogStream.log("transport").println("Transport.serviceCall: waiting to read object id");
  34.          }
  35.  
  36.          ObjID var19;
  37.          try {
  38.             var19 = ObjID.read(var1.getInputStream());
  39.          } catch (IOException var17) {
  40.             throw new MarshalException("unable to read objID", var17);
  41.          }
  42.  
  43.          if (logLevel >= 10) {
  44.             LogStream.log("transport").println("Transport.serviceCall: get target " + var19);
  45.          }
  46.  
  47.          Target var20 = ObjectTable.getTarget(var19);
  48.          if (var20 == null || (var3 = var20.getImpl()) == null) {
  49.             throw new NoSuchObjectException("no such object in table");
  50.          }
  51.  
  52.          var2 = var20.getDispatcher();
  53.       } catch (RemoteException var18) {
  54.          RemoteException var4 = var18;
  55.          PrintStream var5 = RemoteServer.getLog();
  56.          if (var5 != null) {
  57.             synchronized(var5){}
  58.  
  59.             try {
  60.                try {
  61.                   var5.print("[" + RemoteServer.getClientHost() + "] ");
  62.                } catch (ServerNotActiveException var14) {
  63.                }
  64.  
  65.                var5.print("exception: ");
  66.                ((Throwable)var4).printStackTrace(var5);
  67.             } catch (Throwable var15) {
  68.                throw var15;
  69.             }
  70.          }
  71.  
  72.          try {
  73.             if (logLevel >= 10) {
  74.                LogStream var6 = LogStream.log("transport");
  75.                ((PrintStream)var6).println("Transport.serviceCall: exception: ");
  76.                ((Throwable)var4).printStackTrace(var6);
  77.             }
  78.  
  79.             ObjectOutput var21 = var1.getResultStream(false);
  80.             var21.writeObject(var4);
  81.             var1.releaseOutputStream();
  82.             return true;
  83.          } catch (IOException var13) {
  84.             return false;
  85.          }
  86.       }
  87.  
  88.       try {
  89.          if (logLevel >= 20) {
  90.             LogStream.log("transport").println("Transport.serviceCall: call dispatcher");
  91.          }
  92.  
  93.          var2.dispatch(var3, var1);
  94.          return true;
  95.       } catch (IOException var16) {
  96.          return false;
  97.       }
  98.    }
  99. }
  100.