Package io.javago
Interface InputChannel<T>
- Type Parameters:
T
- the type of messages handled by the channel
- All Superinterfaces:
AutoCloseable
,Iterable<T>
- All Known Subinterfaces:
Channel<T>
- All Known Implementing Classes:
BufferedQueueChannel
The
InputChannel
interface defines the operations for a Go channel
in Java that can receive messages
of a specified type.
It extends AutoCloseable
to support resource management and Iterable
to allow for iteration over the
messages in the channel.-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes the channel.boolean
hasNext()
Waits until the channel has another message.boolean
hasSpace()
Waits until the channel has space for another message or is closed.boolean
isClosed()
Checks if the channel is closed.boolean
isEmpty()
Checks if the channel is empty.boolean
isFull()
Checks if the channel is full.static <T> Channel
<T> make()
Creates a new channel with a default capacity.static <T> Channel
<T> make
(int capacity) Creates a new channel with the specified capacity.receive()
Receives a message from the channel, waiting if necessary for a message to be sent.Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Method Details
-
receive
T receive()Receives a message from the channel, waiting if necessary for a message to be sent.- Returns:
- the received message
- Throws:
NoSuchElementException
- if the channel is both closed and empty
-
isClosed
boolean isClosed()Checks if the channel is closed.- Returns:
true
if the channel is closed,false
otherwise
-
close
void close()Closes the channel. Once closed, no more messages can be sent, but any remaining messages can still be received. Closing an already closed channel has no effect.- Specified by:
close
in interfaceAutoCloseable
-
isEmpty
boolean isEmpty()Checks if the channel is empty.- Returns:
true
if the channel is empty,false
otherwise
-
isFull
boolean isFull()Checks if the channel is full.- Returns:
true
if the channel is full,false
otherwise
-
hasSpace
boolean hasSpace()Waits until the channel has space for another message or is closed.- Returns:
true
if the channel has space,false
if the channel is closed
-
hasNext
boolean hasNext()Waits until the channel has another message.- Returns:
true
if there are more messages,false
if the channel is both closed and empty.
-
make
Creates a new channel with a default capacity.- Type Parameters:
T
- the type of messages handled by the channel- Returns:
- a new
Channel
instance
-
make
Creates a new channel with the specified capacity.- Type Parameters:
T
- the type of messages handled by the channel- Parameters:
capacity
- the capacity of the channel- Returns:
- a new
Channel
instance with the specified capacity
-