import java.util.*; import java.net.*; import java.io.*; public class CameraLinker extends Linker { static final int white = 0, red = 1; int seqNo[] = null; SenderCamera cam; public CameraLinker(String basename, int myId, int numProc) throws Exception { super(basename, myId, numProc); seqNo = new int[numProc]; for (int i = 0; i < numProc; i++) seqNo[i] = 0; } public void initCam(SenderCamera cam){ this.cam = cam; } public void sendMsg(int destId, String tag, String msg) { if ((tag.equals("marker")) || (tag.equals("ack"))) super.sendMsg(destId, tag, msg); else {// send seq numbers with app msgs seqNo[destId]++; Message m = new Message(myId, destId, tag, msg); if (cam.myColor == white) { cam.recordMessage(destId, new SeqMessage(m, seqNo[destId])); super.sendMsg(destId, "white", String.valueOf(seqNo[destId])+" " + m.toString() + " "); } else super.sendMsg(destId, "red", String.valueOf(seqNo[destId])+" " + m.toString() + " "); } } }