diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2019-11-20 12:45:16 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2019-11-20 12:45:16 -0500 |
commit | df044930bca4252ff6e4814c654a612c6aee2136 (patch) | |
tree | 906eddbbfdecb63e3525657cd4e6f75c8ba91bc3 /src/main/java/net/transit/network/swap | |
parent | ebc33c58c8a3669822a0dba99cbfe8a451782813 (diff) |
[0.1.7 REWRITE] Codebase overhaul.
~ Codebase split into two sub-packages
~ net.transit.network for transfering between objects
~ net.transit.type for type registering and conversion
+ Added new interfaces (INode and ISystem)
+ More documentation
+ (Kinda) Working build
- Removed unnessairy interfaces (IGenerator and IConsumer)
- Removed base types
~ Restructured type system
Diffstat (limited to 'src/main/java/net/transit/network/swap')
-rw-r--r-- | src/main/java/net/transit/network/swap/IAcceptor.java | 31 | ||||
-rw-r--r-- | src/main/java/net/transit/network/swap/IProvider.java | 37 |
2 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/net/transit/network/swap/IAcceptor.java b/src/main/java/net/transit/network/swap/IAcceptor.java new file mode 100644 index 0000000..6966b9a --- /dev/null +++ b/src/main/java/net/transit/network/swap/IAcceptor.java @@ -0,0 +1,31 @@ +package net.transit.network.swap; + +import net.transit.network.packet.IPacket; + +/** + * @author Kyle Gunger + * + * @param <T> The type of data accepted (in IPacket<<T>> form) + */ +public interface IAcceptor<T> +{ + /** + * @return <b>True</b> if the acceptor can accept packets. + */ + public boolean canAccept(); + + /** + * @param provided The packet provided. + * @return <b>True</b> if the acceptor accepted the packet. + */ + public boolean accept(IPacket<T> provided); + + /** + * @return <b>True</b> if the acceptor has a provider assigned to it. + */ + public boolean hasProvider(); + + /**Set the provider of the acceptor. The acceptor can decide if it wants to adopt the provider. + */ + public void setProvider(IProvider<T> provider); +}
\ No newline at end of file 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 |