Skip to content

Commit

Permalink
Refactor BroadcastLoopback
Browse files Browse the repository at this point in the history
  • Loading branch information
vladamatena committed Mar 12, 2015
1 parent 8c28f6e commit fc6ba95
Showing 1 changed file with 10 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,37 +68,31 @@ public boolean canSend(Address address) {

@Override
public void send(byte[] data, Address addressNotUsed) {
Task task = new CustomStepTask(scheduler, new DeliveryTask(constantDelay, new PacketPackage(data, this)));
Task task = new CustomStepTask(scheduler, new DeliveryListener(constantDelay, new PacketWrapper(data, this)));
BroadcastLoopback.this.scheduler.addTask(task);
}
}

/**
* Packet package used to carry information about packet
*
* @author Vladimir Matena <matena@d3s.mff.cuni.cz>
*
*/
private class PacketPackage {
public byte[] data;
public LoopDevice source;
private final class PacketWrapper {
public final byte[] data;
public final LoopDevice source;

PacketPackage(byte[] data, LoopDevice source) {
PacketWrapper(byte[] data, LoopDevice source) {
this.data = data;
this.source = source;
}
}

/**
* Task used to delayed delivery of data
*
* @author Vladimir Matena <matena@d3s.mff.cuni.cz>
*
* Listener used to delayed delivery of data
*/
private class DeliveryTask implements TimerTaskListener {
final private PacketPackage packet;
private class DeliveryListener implements TimerTaskListener {
final private PacketWrapper packet;

public DeliveryTask(long delay, PacketPackage packet) {
public DeliveryListener(long delay, PacketWrapper packet) {
this.packet = packet;
}

Expand Down Expand Up @@ -138,7 +132,7 @@ public BroadcastLoopback() {
* @param packet
* Container containing packet data and sender information
*/
public void sendToAll(PacketPackage packet) {
public void sendToAll(PacketWrapper packet) {
for (LoopDevice loop : loops) {
loop.layer1.processL0Packet(packet.data, packet.source, new ReceivedInfo(packet.source.address));
}
Expand Down

0 comments on commit fc6ba95

Please sign in to comment.