package org.scribble.net.scribsock; import java.io.IOException; import org.scribble.main.ScribbleRuntimeException; import org.scribble.net.session.BinaryChannelEndpoint; import org.scribble.net.session.SessionEndpoint; public abstract class ScribServerSocket implements AutoCloseable { public final int port; private boolean reg = false; public ScribServerSocket(int port) throws IOException { this.port = port; } //public abstract BinaryChannelEndpoint accept(MPSTEndpoint<?, ?> se) throws IOException; // synchronize public abstract BinaryChannelEndpoint accept(SessionEndpoint<?, ?> se) throws IOException; // synchronize public synchronized void bind() throws ScribbleRuntimeException { if (this.reg) { throw new ScribbleRuntimeException("Server socket already registered."); } this.reg = true; } public synchronized void unbind() { this.reg = false; } @Override public abstract void close(); }