diff options
| author | Michael Koch <konqueror@gmx.de> | 2004-03-21 10:10:14 +0000 |
|---|---|---|
| committer | Michael Koch <konqueror@gmx.de> | 2004-03-21 10:10:14 +0000 |
| commit | 1ea4bde3447a9c4e437be979b5dc8860d89031cd (patch) | |
| tree | b8743b4206429436c98f9e24b4101497e131d09b /gnu/java/rmi/server/UnicastConnection.java | |
| parent | 9e70865e826bf2816d7343924e003fe24d42b07f (diff) | |
| download | classpath-1ea4bde3447a9c4e437be979b5dc8860d89031cd.tar.gz | |
2004-03-21 Norbert Frese <postfach@nfrese.net>
* gnu/java/rmi/server/RMIIncomingThread.java: New file.
* gnu/java/rmi/server/UnicastConnection.java:
Create a new RMIObjectOuputStream/RMIObjectInputStream for every
rmi-message.
(getObjectInputStream): Return object reference, throw IOException if null.
(startObjectInputStream): Create new RMIObjectInputStream on top of 'din'.
(getObjectOutputStream): Return object reference, throw IOException if null.
(startObjectOutputStream): Create new RMIObjectOutputStream on top of 'dout'.
* gnu/java/rmi/server/UnicastConnectionManager.java:
(UnicastConnectionManager): Throw RemoteException if port is not available.
(getInstance): Throw RemoteException.
(run): Lookup client host and attach it to new RMIIncomingThread for later retrieval.
* gnu/java/rmi/server/UnicastRef.java:
Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message.
Collect Exceptions which are returned by a rmi-call and fix void returns.
* gnu/java/rmi/server/UnicastRemoteCall.java:
Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message.
* gnu/java/rmi/server/UnicastServer.java:
(dispatch): Answer ping messages which are sent by other java implementions.
(incomingMessageCall): Start a new RMIObjectInputStream/RMIObjectOutputStream
for every rmi-message and fix void return problems.
* gnu/java/rmi/server/UnicastServerRef.java
(UnicastServerRef): Throw RemoteException.
(exportObject): Find the class up the class hierarchy which has a _Stub generated by rmic.
In some situations it is necessary to export a subclass of the class which has the _Stub.
For instance when the class with has the _Stub is abstract.
(findStubSkelClass): New method which looks for the class which has the _Stub.
(getClientHost): Implementated.
* java/rmi/server/RemoteServer.java
(getClientHost): Implemented.
* gnu/java/rmi/server/Makefile.am
(EXTRA_DIST): RMIIncomingThread.java.
Diffstat (limited to 'gnu/java/rmi/server/UnicastConnection.java')
| -rw-r--r-- | gnu/java/rmi/server/UnicastConnection.java | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/gnu/java/rmi/server/UnicastConnection.java b/gnu/java/rmi/server/UnicastConnection.java index 14d28f26c..19e074a08 100644 --- a/gnu/java/rmi/server/UnicastConnection.java +++ b/gnu/java/rmi/server/UnicastConnection.java @@ -104,6 +104,7 @@ void acceptConnection() throws IOException { void makeConnection(int protocol) throws IOException { //Use BufferedXXXStream would be more efficient din = new DataInputStream(new BufferedInputStream(sock.getInputStream())); + dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream())); // Send header @@ -139,20 +140,48 @@ DataOutputStream getDataOutputStream() throws IOException { return (dout); } +/* +* +* get ObjectInputStream for reading more objects +* +*/ ObjectInputStream getObjectInputStream() throws IOException { if (oin == null) { - oin = new RMIObjectInputStream(din); + throw new IOException("no ObjectInputtream for reading more objects"); } return (oin); } +/** +* +* starts ObjectInputStream. +* +*/ +ObjectInputStream startObjectInputStream() throws IOException { + return (oin = new RMIObjectInputStream(din)); +} + +/** +* +* get ObjectOutputStream for sending more objects +* +*/ ObjectOutputStream getObjectOutputStream() throws IOException { if (oout == null) { - oout = new RMIObjectOutputStream(dout); - } + throw new IOException("no ObjectOutputStream for sending more objects"); + } return (oout); } +/** +* +* starts ObjectOutputStream. +* +*/ +ObjectOutputStream startObjectOutputStream() throws IOException { + return (oout = new RMIObjectOutputStream(dout)); +} + void disconnect() { try { if(oout != null) @@ -200,4 +229,5 @@ public void run() { }while(true); } + } |
