Package io.javago
Interface OutputChannel<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
OutputChannel interface defines the operations for a Go channel in Java that can send 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 TypeMethodDescriptionvoidclose()Closes the channel.booleanhasNext()Waits until the channel has another message.booleanhasSpace()Waits until the channel has space for another message or is closed.booleanisClosed()Checks if the channel is closed.booleanisEmpty()Checks if the channel is empty.booleanisFull()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.voidSends a message through the channel, waiting if necessary for space to become available.Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Method Details
-
send
Sends a message through the channel, waiting if necessary for space to become available.- Parameters:
message- the message to be sent- Throws:
IllegalStateException- if the channel
-
isClosed
boolean isClosed()Checks if the channel is closed.- Returns:
trueif the channel is closed,falseotherwise
-
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:
closein interfaceAutoCloseable
-
isEmpty
boolean isEmpty()Checks if the channel is empty.- Returns:
trueif the channel is empty,falseotherwise
-
isFull
boolean isFull()Checks if the channel is full.- Returns:
trueif the channel is full,falseotherwise
-
hasSpace
boolean hasSpace()Waits until the channel has space for another message or is closed.- Returns:
trueif the channel has space,falseif the channel is closed
-
hasNext
boolean hasNext()Waits until the channel has another message.- Returns:
trueif there are more messages,falseif 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
Channelinstance
-
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
Channelinstance with the specified capacity
-