public abstract void Send(SubPacket subPacket);
public void Send(uint source, uint target, SubPacket subPacket) { outgoingPackets.Enqueue(new PendingSubPacket(subPacket, source, target)); }
protected virtual bool CanProcessSubPacket(SubPacket subPacket) { return(true); }