diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2019-11-22 10:35:21 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2019-11-22 10:35:21 -0500 |
commit | c05689ba385733ee52ca825b194134126640af8a (patch) | |
tree | 66674f5af72f9bfa97e8ee377f4e894f8fca9a72 /src/main/java/net/transit/network | |
parent | d08cbf6b8705df234077c49608de3c2f7ff0e3fa (diff) |
[Update] Nodes now transfer things
~ Switched Provider and Acceptor to ProviderNode and AcceptorNode
~ Nodes are now expected to connect to eachother on their own
~ Inventory hooks are not here, but have been thought through
Signed-off-by: Kyle Gunger <kgunger12@gmail.com>
Diffstat (limited to 'src/main/java/net/transit/network')
5 files changed, 59 insertions, 122 deletions
diff --git a/src/main/java/net/transit/network/swap/Acceptor.java b/src/main/java/net/transit/network/swap/Acceptor.java deleted file mode 100644 index 9778095..0000000 --- a/src/main/java/net/transit/network/swap/Acceptor.java +++ /dev/null @@ -1,44 +0,0 @@ -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 accepted (in IPacket<<T>> form) - */ -public interface Acceptor<T> -{ - /** Returns the INode this Acceptor is attached to. All Acceptors and Provider must be attached to an INode to function. - * - * @return INode - */ - public Node getNode(); - - /** - * @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(Packet<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(Provider<T> provider); - - /** Request that the Acceptor close it's connection to a Provider. The Acceptor may also shut itself down if no more Providers are attached. - * - * @param provider The Provider - */ - public void shutdown(Provider<T> provider); -}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/swap/Provider.java b/src/main/java/net/transit/network/swap/Provider.java deleted file mode 100644 index 20656b8..0000000 --- a/src/main/java/net/transit/network/swap/Provider.java +++ /dev/null @@ -1,50 +0,0 @@ -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 diff --git a/src/main/java/net/transit/network/system/Node.java b/src/main/java/net/transit/network/system/Node.java index 8e0fcbb..9e9ac10 100644 --- a/src/main/java/net/transit/network/system/Node.java +++ b/src/main/java/net/transit/network/system/Node.java @@ -1,50 +1,30 @@ package net.transit.network.system; -import net.transit.network.swap.Acceptor; -import net.transit.network.swap.Provider; - /** * @author Kyle Gunger * @apiNote A node inside or outside a system. Provides acceptors and providers to other nodes. */ public interface Node { - /**Returns the groupIDs of groups the node provide + + /**Returns the groupIDs of groups the node interacts with * * @return String[] */ public String[] groupsProvided(); + /**Get the system managing the node or {@code null} if there isn't one * - * @return ISystem + * @return System */ public System getSystem(); - /**Returns {@code true} if the node provides Acceptors - * - * @return boolean - */ - public boolean isAcceptor(); - - /**Returns an Acceptor or {@code null} depending on the requester and group - * - * @param requester The object requesting the Acceptor - * @param group - * @return Acceptor - */ - public Acceptor<?> requestAcceptor(Object requester, String group); - - /**Returns {@code true} if the node provides Providers - * - */ - public boolean isProvider(); - /**Returns an Provider or {@code null} depending on the requester and group + /** Get the data of one of the TypeGroups the Node supports * - * @param requester The object requesting the Provider - * @param group - * @return Provider + * @param groupID + * @return */ - public Provider<?> requestProvider(Object requestor, String group); + public Object getData(String groupID); } diff --git a/src/main/java/net/transit/network/system/swap/AcceptorNode.java b/src/main/java/net/transit/network/system/swap/AcceptorNode.java new file mode 100644 index 0000000..c583146 --- /dev/null +++ b/src/main/java/net/transit/network/system/swap/AcceptorNode.java @@ -0,0 +1,31 @@ +package net.transit.network.system.swap; + +import net.transit.network.packet.Packet; +import net.transit.network.system.Node; + +public interface AcceptorNode extends Node +{ + + /** Link another node as a provider + * + * @param requester The object to be a provider + * @param group + * @return Provider + */ + public boolean linkProvider(Node requestor, String group); + + + /** + * @return Node[] + */ + public Node[] getProviders(); + + + /** Accept a packet from a provider + * + * @param packet + * @param group + * @return + */ + public boolean accept(Packet<?> packet, String group); +} diff --git a/src/main/java/net/transit/network/system/swap/ProviderNode.java b/src/main/java/net/transit/network/system/swap/ProviderNode.java new file mode 100644 index 0000000..4cd9dba --- /dev/null +++ b/src/main/java/net/transit/network/system/swap/ProviderNode.java @@ -0,0 +1,20 @@ +package net.transit.network.system.swap; + +import net.transit.network.system.Node; + +public interface ProviderNode extends Node{ + + /** Link another node as an acceptor + * + * @param requester The object requesting the Acceptor + * @param group + * @return boolean + */ + public boolean linkAcceptor(Node requester, String group); + + /** + * @return Node[] + */ + public Node[] getAcceptors(); + +} |