summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2021-06-19 20:41:15 -0400
committerKyle Gunger <kgunger12@gmail.com>2021-06-19 20:41:15 -0400
commit80fe25bcb811508a5fe826c37513a8a63239cb55 (patch)
tree9e6242e55ee55e3a0b56322f9d94aacfaf546b25 /src/main/java
parent9190d7c12d1bbdcfc401543128fb0219e6fc0a81 (diff)
[Release] version 2.0.0
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/cshift/transit/network/Channel.java8
-rw-r--r--src/main/java/net/cshift/transit/network/INode.java9
-rw-r--r--src/main/java/net/cshift/transit/network/PoolManifest.java16
-rw-r--r--src/main/java/net/cshift/transit/type/group/TypeGroup.java66
4 files changed, 19 insertions, 80 deletions
diff --git a/src/main/java/net/cshift/transit/network/Channel.java b/src/main/java/net/cshift/transit/network/Channel.java
index c7be552..e5c64da 100644
--- a/src/main/java/net/cshift/transit/network/Channel.java
+++ b/src/main/java/net/cshift/transit/network/Channel.java
@@ -109,12 +109,10 @@ public final class Channel<D> {
/** Send a packet to the recieving node
*
* @param packet the packet to send
- * @return {@code true} if the recieving node accepts the packet
+ * @return The overflow data if the packet is only partially accepted. {@code null} otherwise.
*/
- public boolean send(IStaticPacket<D> packet)
+ public IStaticPacket<D> send(IStaticPacket<D> packet)
{
- if(!this.isTerminated())
- return to.accept(packet, this);
- return false;
+ return to.accept(packet, this);
}
}
diff --git a/src/main/java/net/cshift/transit/network/INode.java b/src/main/java/net/cshift/transit/network/INode.java
index 8f74dd6..7cbb1cc 100644
--- a/src/main/java/net/cshift/transit/network/INode.java
+++ b/src/main/java/net/cshift/transit/network/INode.java
@@ -8,14 +8,13 @@ import net.cshift.transit.network.packet.*;
*/
public interface INode
{
- /** Returns a channel manifest for the INode
+ /** Returns a pool manifest for the INode
*
*/
public PoolManifest getManifest();
/** Get the system managing the node or {@code null} if there isn't one
*
- * @return System
*/
public ISystem getSystem();
@@ -28,7 +27,7 @@ public interface INode
/** Call this function to establish a connection with a node.
*
* @param <T> The type of connection being asked for
- * @param group The group of connection being asked for
+ * @param poolID The ID of the pool the channel will interface with (see PoolManifest)
* @param asker The asking node
* @return A channel if the node accepts the request, {@code null} otherwise
*/
@@ -40,9 +39,9 @@ public interface INode
* @param <T> The type of the packet and channel
* @param packet The packet to be vetted
* @param channel The channel which the packet is coming through
- * @return true if the node accepts the packet
+ * @return The overflow data if the packet is only partially accepted. {@code null} otherwise.
*/
- public <T> boolean accept(IStaticPacket<T> packet, Channel<T> channel);
+ public <T> IStaticPacket<T> accept(IStaticPacket<T> packet, Channel<T> channel);
/** Pressure
*
diff --git a/src/main/java/net/cshift/transit/network/PoolManifest.java b/src/main/java/net/cshift/transit/network/PoolManifest.java
index d6bec43..e23d47f 100644
--- a/src/main/java/net/cshift/transit/network/PoolManifest.java
+++ b/src/main/java/net/cshift/transit/network/PoolManifest.java
@@ -2,35 +2,39 @@ package net.cshift.transit.network;
/**
* @author Kyle Gunger
- * @apiNote A channel manifest represents a set of possible data/resource pools that another node can request a channel to.
+ * @apiNote A pool manifest represents a set of possible data/resource pools that another node can request a channel to.
*/
-public interface PoolManifest {
+public abstract class PoolManifest {
/** Represents the number of pools that the node has access to for the specified resource.
* @apiNote A "pool" in this context represents an independant network of resources.
* Pool zero should be the default group that simple nodes will attempt to connect to.
* @param group The TypeGroup that the pool belongs to
*/
- public int poolCount(String group);
+ public abstract int poolCount(String group);
/** The ID of the pool. The INode will use this in a connection attempt with the other INode.
*
* @param group The TypeGroup the pool belongs to
* @param pool Array-like index for pool (gotten from poolCount)
*/
- public int poolID(String group, int pool);
+ public abstract int poolID(String group, int pool);
/** If the mod supports named pools, the names can be querried through this function.
*
* @param group The TypeGroup the pool belongs to
* @param pool Array-like index for pool (gotten from poolCount)
*/
- public String poolName(String group, int pool);
+ public String poolName(String group, int pool) {
+ return "";
+ }
/** If the mod supports pool descriptions, they can be accessed by this method.
*
* @param group The TypeGroup the pool belongs to
* @param pool Array-like index for pool (gotten from poolCount)
*/
- public String poolDescription(String group, int pool);
+ public String poolDescription(String group, int pool) {
+ return "";
+ }
}
diff --git a/src/main/java/net/cshift/transit/type/group/TypeGroup.java b/src/main/java/net/cshift/transit/type/group/TypeGroup.java
index d120cba..214f28c 100644
--- a/src/main/java/net/cshift/transit/type/group/TypeGroup.java
+++ b/src/main/java/net/cshift/transit/type/group/TypeGroup.java
@@ -5,14 +5,13 @@ import java.util.ArrayList;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import net.cshift.transit.network.packet.*;
import net.cshift.transit.type.Type;
/**
* @author Kyle Gunger
* @param <B> The base object which all grouped Types should convert between.
*/
-public class TypeGroup<B>
+public final class TypeGroup<B>
{
// The base Type (provides the group's identifier)
private Type<B> baseType;
@@ -181,68 +180,7 @@ public class TypeGroup<B>
}
- // Type conversion
-
- /** Actually convert the packet
- *
- * @param packet
- * @param type
- * @return
- */
- @Deprecated
- protected IStaticPacket<B> convertPacketRaw(IStaticPacket<B> packet, Type<B> type)
- {
- return type.packetFromBase(packet.getType().toBase(packet.getData()));
- }
-
- /**Convert a packet to a new type Returns null if the type isn't in the group.
- *
- * @param packet The packet to convert
- * @param type The type to convert to
- * @return Packet
- */
- @Deprecated
- public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, Type<B> type)
- {
- return type.convertFrom(packet, this.getGroup());
- }
-
- /**Convert a packet to a new type Returns null if the type isn't found.
- *
- * @param packet The packet to convert
- * @param groupID The groupID of the Type to convert to
- * @param typeID The typeID of the Type to convert to
- * @return Packet
- */
- @Deprecated
- public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, String groupID, String typeID)
- {
- Type<B> toType = getType(groupID, typeID);
- if(toType != null)
- {
- return toType.convertFrom(packet, this.getGroup());
- }
-
- return null;
- }
-
- /**Convert a packet to a new type. Returns null if the type isn't found.
- *
- * @param packet The packet to convert
- * @param typeID The typeID of the Type to convert to
- * @return Packet
- */
- @Deprecated
- public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, String typeID)
- {
- Type<B> toType = getType(typeID);
- if(toType != null)
- {
- return toType.convertFrom(packet, this.getGroup());
- }
-
- return null;
- }
+ // DO ALL TYPE CONVERSION USING TYPES.
/** The group identifier. Given by the Base Group
* @return String