diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2019-11-21 18:35:14 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2019-11-21 18:35:14 -0500 |
commit | d08cbf6b8705df234077c49608de3c2f7ff0e3fa (patch) | |
tree | 6e8705d65e4e0f0c1cafe9736980504b5b6f9cde /src/main/java/net/transit/network/swap/Provider.java | |
parent | df044930bca4252ff6e4814c654a612c6aee2136 (diff) |
[Update] Codebase updated to 0.2.8
~ Rewrote files and documentation for cohesion
~ Removed I from the start of interface names
Diffstat (limited to 'src/main/java/net/transit/network/swap/Provider.java')
-rw-r--r-- | src/main/java/net/transit/network/swap/Provider.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/net/transit/network/swap/Provider.java b/src/main/java/net/transit/network/swap/Provider.java new file mode 100644 index 0000000..20656b8 --- /dev/null +++ b/src/main/java/net/transit/network/swap/Provider.java @@ -0,0 +1,50 @@ +package net.transit.network.swap; + +import net.transit.network.packet.Packet; +import net.transit.network.system.Node; + +/** + * @author Kyle Gunger + * + * @param <T> The type of data provided (in IPacket<<T>> form) + */ +public interface Provider<T> +{ + /** Returns the INode this Provider is attached to. All Acceptors and Providers must be attached to an INode to function. + * + * @return INode + */ + public Node getNode(); + + /** + * @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 Packet<T> provide(); + + /**Retain the packet if the Acceptor did not accept the packet. + * + * @param rejected The rejected packet + */ + public void retain(Packet<T> rejected); + + /** + * @return <b>True</b> if the Provider has an Acceptor 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(Acceptor<T> acceptor); + + /** Request that the Provider close it's connection to a Acceptor. The Provider may also shut itself down if no more Acceptors are attached. + * + * @param acceptor The Acceptor + */ + public void shutdown(Acceptor<T> acceptor); +}
\ No newline at end of file |