summaryrefslogtreecommitdiff
path: root/src/main/java/net/transit/network/packet
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/transit/network/packet')
-rw-r--r--src/main/java/net/transit/network/packet/ArrayPacket.java45
-rw-r--r--src/main/java/net/transit/network/packet/IPacket.java23
-rw-r--r--src/main/java/net/transit/network/packet/MetaPacket.java33
-rw-r--r--src/main/java/net/transit/network/packet/StaticPacket.java25
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