/** * */ package edu.brown.protorpc; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SelectableChannel; import java.nio.channels.SocketChannel; public final class MockEventLoop implements EventLoop { @Override public void registerRead(SelectableChannel channel, Handler handler) { this.handler = handler; } @Override public void registerAccept(ServerSocketChannel channel, Handler handler) { throw new UnsupportedOperationException("not implemented"); } @Override public void registerWrite(SelectableChannel channel, Handler handler) { if (writeHandler != null) { throw new IllegalStateException("Each channel can only call registerWrite() once"); } writeHandler = handler; } @Override public void registerConnect(SocketChannel channel, Handler handler) { // This is just ignored: needed for ProtoRpcChannelTest } @Override public void registerTimer(int timerMilliseconds, Handler handler) { assert timerMilliseconds >= 0; assert handler != null; this.timerMilliseconds = timerMilliseconds; timerHandler = handler; } @Override public void cancelTimer(Handler handler) { throw new UnsupportedOperationException("TODO: implement"); } @Override public void run() { throw new UnsupportedOperationException("TODO: implement"); } @Override public void runInEventThread(Runnable callback) { throw new UnsupportedOperationException("TODO: implement"); } @Override public void runOnce() { throw new UnsupportedOperationException("TODO: implement"); } public Handler handler; public Handler writeHandler; public int timerMilliseconds; public Handler timerHandler; }