diff options
Diffstat (limited to 'src/main/java/net/transit/network/swap/IProvider.java')
-rw-r--r-- | src/main/java/net/transit/network/swap/IProvider.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/net/transit/network/swap/IProvider.java b/src/main/java/net/transit/network/swap/IProvider.java new file mode 100644 index 0000000..03c9ca9 --- /dev/null +++ b/src/main/java/net/transit/network/swap/IProvider.java @@ -0,0 +1,37 @@ +package net.transit.network.swap; + +import net.transit.network.packet.IPacket; + +/** + * @author Kyle Gunger + * + * @param <T> The type of data provided (in IPacket<<T>> form) + */ +public interface IProvider<T> +{ + /** + * @return <b>True</b> if the provider can provide a packet. + */ + public boolean canProvide(); + + /**Get the next packet from the provider + * + * @return IPacket<<T>> + */ + public IPacket<T> provide(); + + /**Retain the packet if the acceptor did not accept the packet. + * + * @param rejected The rejected packet + */ + public void retain(IPacket<T> rejected); + + /** + * @return <b>True</b> if the acceptor has a provider assigned to it + */ + public boolean hasAcceptor(); + + /**Set the acceptor of the provider. The provider can decide if it wants to adopt the acceptor. + */ + public void setAcceptor(); +}
\ No newline at end of file |