Started Rewriting Packet Handling

Started rewriting our packet handling code. Deleted PacketHandler in
favor of using sided (Server-, Client-) packet handlers to make it
easier to follow what's going on in our code. Added some event-based
handling of updates which greatly simplified signaling that data needs
to be sent, but it's not completely done yet.
This commit is contained in:
SenseiKiwi
2013-09-01 22:01:17 -04:00
parent efa5b3eb4c
commit 62fed83e2f
17 changed files with 421 additions and 221 deletions

View File

@@ -0,0 +1,8 @@
package StevenDimDoors.mod_pocketDim.watcher;
import java.io.DataOutputStream;
public interface IOpaqueMessage
{
void writeToStream(DataOutputStream stream);
}

View File

@@ -0,0 +1,8 @@
package StevenDimDoors.mod_pocketDim.watcher;
import com.google.common.io.ByteArrayDataInput;
public interface IOpaqueReader
{
IOpaqueMessage read(ByteArrayDataInput source);
}

View File

@@ -0,0 +1,8 @@
package StevenDimDoors.mod_pocketDim.watcher;
public interface IUpdateWatcher
{
public void onCreated(IOpaqueMessage message);
public void onUpdated(IOpaqueMessage message);
public void onDeleted(IOpaqueMessage message);
}

View File

@@ -0,0 +1,51 @@
package StevenDimDoors.mod_pocketDim.watcher;
import java.util.ArrayList;
import java.util.List;
public class UpdateWatcherProxy implements IUpdateWatcher
{
private List<IUpdateWatcher> watchers;
public UpdateWatcherProxy()
{
watchers = new ArrayList<IUpdateWatcher>();
}
@Override
public void onCreated(IOpaqueMessage message)
{
for (IUpdateWatcher receiver : watchers)
{
receiver.onCreated(message);
}
}
@Override
public void onUpdated(IOpaqueMessage message)
{
for (IUpdateWatcher receiver : watchers)
{
receiver.onUpdated(message);
}
}
@Override
public void onDeleted(IOpaqueMessage message)
{
for (IUpdateWatcher receiver : watchers)
{
receiver.onDeleted(message);
}
}
public void registerReceiver(IUpdateWatcher receiver)
{
watchers.add(receiver);
}
public boolean unregisterReceiver(IUpdateWatcher receiver)
{
return watchers.remove(receiver);
}
}