summaryrefslogtreecommitdiff
path: root/src/main/java/net/transit/network
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2019-11-22 10:35:21 -0500
committerKyle Gunger <kgunger12@gmail.com>2019-11-22 10:35:21 -0500
commitc05689ba385733ee52ca825b194134126640af8a (patch)
tree66674f5af72f9bfa97e8ee377f4e894f8fca9a72 /src/main/java/net/transit/network
parentd08cbf6b8705df234077c49608de3c2f7ff0e3fa (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')
-rw-r--r--src/main/java/net/transit/network/swap/Acceptor.java44
-rw-r--r--src/main/java/net/transit/network/swap/Provider.java50
-rw-r--r--src/main/java/net/transit/network/system/Node.java36
-rw-r--r--src/main/java/net/transit/network/system/swap/AcceptorNode.java31
-rw-r--r--src/main/java/net/transit/network/system/swap/ProviderNode.java20
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();
+
+}