diff options
Diffstat (limited to 'src/main/java/net/transit/network/packet')
4 files changed, 126 insertions, 0 deletions
diff --git a/src/main/java/net/transit/network/packet/ArrayPacket.java b/src/main/java/net/transit/network/packet/ArrayPacket.java new file mode 100644 index 0000000..9cbd300 --- /dev/null +++ b/src/main/java/net/transit/network/packet/ArrayPacket.java @@ -0,0 +1,45 @@ +package net.transit.network.packet; + +import java.util.ArrayList; + +import net.transit.type.Type; + +public class ArrayPacket<D> implements IPacket<D> +{ + private ArrayList<D> arrayData; + private Type<D> type; + + public ArrayPacket(D startValue, Type<D> t) + { + arrayData = new ArrayList<D>(0); + arrayData.add(startValue); + } + + public D getData() + { + if(arrayData.size() > 0) return arrayData.get(0); + return null; + } + + public void addData(D data) + { + arrayData.add(data); + } + + public D popAndShift() + { + D temp = null; + + if(arrayData.size() > 0) + { + temp = arrayData.remove(0); + } + + return temp; + } + + @Override + public Type<D> getType() { + return type; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/packet/IPacket.java b/src/main/java/net/transit/network/packet/IPacket.java new file mode 100644 index 0000000..deafdf8 --- /dev/null +++ b/src/main/java/net/transit/network/packet/IPacket.java @@ -0,0 +1,23 @@ +package net.transit.network.packet; + +import net.transit.type.Type; + +/** + * @author Kyle Gunger + * + * @param <D> The data type (Object) that the packet transfers. + */ +public interface IPacket<D> +{ + /**Get the packet's data + * + * @return <D> The packet's data + */ + public D getData(); + + /**Get the packet's type + * + * @return IType<<D>> The type of the packet + */ + public Type<D> getType(); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/packet/MetaPacket.java b/src/main/java/net/transit/network/packet/MetaPacket.java new file mode 100644 index 0000000..e4cffdf --- /dev/null +++ b/src/main/java/net/transit/network/packet/MetaPacket.java @@ -0,0 +1,33 @@ +package net.transit.network.packet; + +import net.transit.type.Type; + +public class MetaPacket<D, M> implements IPacket<D> +{ + + private D data; + private M metaData; + private Type<D> type; + + public MetaPacket(D dat, Type<D> t, M meta) + { + data = dat; + type = t; + metaData = meta; + } + + public D getData() + { + return data; + } + + public M getMetaData() + { + return metaData; + } + + @Override + public Type<D> getType() { + return type; + } +} diff --git a/src/main/java/net/transit/network/packet/StaticPacket.java b/src/main/java/net/transit/network/packet/StaticPacket.java new file mode 100644 index 0000000..8399041 --- /dev/null +++ b/src/main/java/net/transit/network/packet/StaticPacket.java @@ -0,0 +1,25 @@ +package net.transit.network.packet; + +import net.transit.type.Type; + +public class StaticPacket<D> implements IPacket<D> +{ + private D data; + private Type<D> type; + + public StaticPacket(D dat, Type<D> t) + { + data = dat; + type = t; + } + + public D getData() + { + return data; + } + + @Override + public Type<D> getType() { + return type; + } +}
\ No newline at end of file |