summaryrefslogtreecommitdiff
path: root/src/main/java/net/transit/network/swap
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/transit/network/swap')
-rw-r--r--src/main/java/net/transit/network/swap/IAcceptor.java31
-rw-r--r--src/main/java/net/transit/network/swap/IProvider.java37
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