DATA
- the generic typeFlushable
, org.refcodes.component.BidirectionalConnectionComponent<DATA,INPUT>
, org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT,OUTPUT>
, org.refcodes.component.BidirectionalConnectionOpenable<DATA,INPUT>
, org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<DATA,INPUT>
, org.refcodes.component.Closable
, org.refcodes.component.Closable.CloseAutomaton
, org.refcodes.component.ClosedAccessor
, org.refcodes.component.ConnectableComponent
, org.refcodes.component.ConnectableComponent.ConnectableAutomaton
, org.refcodes.component.ConnectionStatusAccessor
, org.refcodes.component.Flushable
, org.refcodes.component.OpenedAccessor
, Availability
, BidirectionalConnectionTransceiver<DATA,InputStream,OutputStream>
, BidirectionalStreamConnectionTransceiver<DATA>
, DatagramDestination<DATA>
, DatagramReceiver<DATA>
, DatagramsDestination<DATA>
, DatagramSource<DATA>
, DatagramsReceiver<DATA>
, DatagramsSource<DATA>
, DatagramsTransceiver<DATA>
, DatagramsTransmitter<DATA>
, DatagramTransceiver<DATA>
, DatagramTransmitter<DATA>
, Receivable
, Transmittable
public class PrefetchBidirectionalStreamConnectionTransceiver<DATA extends Serializable> extends AbstractPrefetchInputStreamReceiver<DATA> implements BidirectionalStreamConnectionTransceiver<DATA>
org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT extends Object,OUTPUT extends Object>
org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<INPUT extends Object,OUTPUT extends Object>
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
DATAGRAM_QUEUE_SIZE
Constructor | Description |
---|---|
PrefetchBidirectionalStreamConnectionTransceiver() |
Instantiates a new prefetch bidirectional stream connection transceiver
impl.
|
PrefetchBidirectionalStreamConnectionTransceiver(ExecutorService aExecutorService) |
Instantiates a new prefetch bidirectional stream connection transceiver
impl.
|
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
|
void |
flush() |
|
boolean |
isOpenable(InputStream aInputStream,
OutputStream aOutputStream) |
|
void |
open(InputStream aInputStream,
OutputStream aOutputStream) |
|
protected void |
open(OutputStream aOutputStream) |
HINT: For testing purposes you can pass an already flushed
ObjectOutputStream (via ObjectOutputStream.flush() )
encapsulating a PipedOutputStream which in turn encapsulates a
PipedInputStream to this open(OutputStream) method. |
void |
transmit(DATA aDatagram) |
Writes (sends) a datagram to a listening
DatagramReceiver . |
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
available, pushDatagram, pushDatagrams, pushDatagrams, receive, receiveAll
isOpenable, open
available, hasAvailable
closeIn, closeQuietly, closeUnchecked
getConnectionStatus, isOpened
receive, receive
receive, receiveAll
transmitAll
transmit
public PrefetchBidirectionalStreamConnectionTransceiver()
public PrefetchBidirectionalStreamConnectionTransceiver(ExecutorService aExecutorService)
aExecutorService
- the executor servicepublic boolean isOpenable(InputStream aInputStream, OutputStream aOutputStream)
isOpenable
in interface org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<DATA extends Serializable,INPUT>
public void open(InputStream aInputStream, OutputStream aOutputStream) throws IOException
open
in interface org.refcodes.component.BidirectionalConnectionOpenable<DATA extends Serializable,INPUT>
IOException
public void transmit(DATA aDatagram) throws IOException
DatagramReceiver
.transmit
in interface DatagramSource<DATA extends Serializable>
transmit
in interface DatagramsSource<DATA extends Serializable>
aDatagram
- The datagram to be pushed to the receiving
DatagramSource
.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void flush() throws IOException
flush
in interface DatagramTransmitter<DATA extends Serializable>
flush
in interface Flushable
flush
in interface org.refcodes.component.Flushable
IOException
public void close() throws IOException
close
in interface org.refcodes.component.Closable
close
in class AbstractPrefetchInputStreamReceiver<DATA extends Serializable>
IOException
protected void open(OutputStream aOutputStream) throws IOException
ObjectOutputStream
(via ObjectOutputStream.flush()
)
encapsulating a PipedOutputStream
which in turn encapsulates a
PipedInputStream
to this open(OutputStream)
method. This
enables you a non-blocking test of the
OutputStreamConnectionDatagramsTransmitter
connected with the
PrefetchInputStreamConnectionReceiver
counterpart which is being
opened with the PipedInputStream
. ATTENTION: For maintainers,
please keep the below code in sync with the code from
OutputStreamConnectionDatagramsTransmitter.open(java.io.OutputStream)
;
except do not set the connection status here, make it protected and do
not @Override anything.aOutputStream
- the output streamIOException
- the open exceptionCopyright © 2021. All rights reserved.