org.jacorb.orb.etf
public abstract class StreamConnectionBase extends ConnectionBase
Version: $Id: StreamConnectionBase.java,v 1.6 2007/02/06 09:15:22 andre.spiegel Exp $
Field Summary | |
---|---|
protected InputStream | in_stream
Reads performed on this stream. |
protected OutputStream | out_stream
Writes performed on this stream. |
Constructor Summary | |
---|---|
protected | StreamConnectionBase() |
protected | StreamConnectionBase(StreamConnectionBase other)
Initialise this instance as a copy of another. |
Method Summary | |
---|---|
void | flush()
Causes any buffered data to be actually written to the Connection. |
boolean | is_data_available()
Simply return true if calling a read on this instance would
find data in the connection. |
int | read(BufferHolder data, int offset, int min_length, int max_length, long time_out)
Reads bytes from the connection.
|
void | write(boolean is_first, boolean is_last, byte[] data, int offset, int length, long time_out)
Writes bytes to this Connection.
|
Parameters: data holds a byte array to which the bytes will be written. The
field data.value
must be initialized with a valid byte
array already, it cannot be null. offset the index in data.value
at which the first
byte will be written. min_length the minimum number of bytes that shall be read from
the Connection. The method will block until at least this many bytes
have been read. If min_length
is 0, the method will always
return immediately without reading any data. max_length the maximum number of bytes that shall be read from
the Connection. If max_length
is greater than
min_length
, then the transport is free to read
(max_length
- min_length
) additional bytes
beyond min_length
. time_out timeout for this particular read operation. Currently
ignored in JacORB; we use socket-level timeouts.
Returns: the number of bytes actually read. The last byte written to
data.value
is at the index offset
+ this return
value. This return type is a change to the ETF draft spec in JacORB.
It is needed because the mechanism suggested in the draft does not work
in Java.
Throws: org.omg.CORBA.TIMEOUT if the socket-level timeout expires before the read operation completes. org.omg.CORBA.TRANSIENT if the I/O is interrupted. org.omg.CORBA.COMM_FAILURE if the read operation fails, for example because the connection has been closed.
Parameters: is_first Currently not used in JacORB. is_last Currently not used in JacORB. data the buffer that holds the data that is to be written. offset index of the first byte in data
that shall
be written to the Connection. length the number of bytes in data that shall be written. The
last byte in data
that is written is at the index
offset + length
. time_out timeout for this particular write operation. Currently
ignored in JacORB.
Throws: org.omg.CORBA.COMM_FAILURE if anything goes wrong during the write operation.