@Override protected void onClose() { super.onClose(); }
@Override public void close() { conn.close(); } }
@Override public void execute(Runnable task) { conn.execute(task); }
/** * Flush the {@link #pendingBuffer} buffer when it is not empty. * * @see #flushData() */ private void flushDataIfNecessary() { if (pendingLength > 0) { flushData(); } }
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionDont(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionDo(b); } finally { session.status = DATA; } } },
public void receive(byte[] data) { for (byte b : data) { status.handle(this, b); } flushDataIfNecessary(); }
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionWill(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionWont(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { if (session.paramsOptionCode == null) { session.paramsOptionCode = b; } else { if (session.paramsIac) { session.paramsIac = false; if (b == BYTE_SE) { try { session.onOptionParameters(session.paramsOptionCode, Arrays.copyOf(session.paramsBuffer, session.paramsLength)); } finally { session.paramsOptionCode = null; session.paramsBuffer = null; session.status = DATA; } } else if (b == BYTE_IAC) { session.appendToParams((byte) -1); } } else { if (b == BYTE_IAC) { session.paramsIac = true; } else { session.appendToParams(b); } } } } },
/** * Append a byte in the {@link #pendingBuffer} buffer. When the {@link #pendingBuffer} buffer is full, data * is flushed. * * @param b the byte * @see #flushData() */ private void appendData(byte b) { if (pendingLength >= pendingBuffer.length) { flushData(); } pendingBuffer[pendingLength++] = b; }
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionDont(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionDo(b); } finally { session.status = DATA; } } },
public void receive(byte[] data) { for (byte b : data) { status.handle(this, b); } flushDataIfNecessary(); }
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionWill(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { try { session.onOptionWont(b); } finally { session.status = DATA; } } },
@Override void handle(TelnetConnection session, byte b) { if (session.paramsOptionCode == null) { session.paramsOptionCode = b; } else { if (session.paramsIac) { session.paramsIac = false; if (b == BYTE_SE) { try { session.onOptionParameters(session.paramsOptionCode, Arrays.copyOf(session.paramsBuffer, session.paramsLength)); } finally { session.paramsOptionCode = null; session.paramsBuffer = null; session.status = DATA; } } else if (b == BYTE_IAC) { session.appendToParams((byte) -1); } } else { if (b == BYTE_IAC) { session.paramsIac = true; } else { session.appendToParams(b); } } } } },
@Override protected void onClose() { super.onClose(); }
/** * Flush the {@link #pendingBuffer} buffer when it is not empty. * * @see #flushData() */ private void flushDataIfNecessary() { if (pendingLength > 0) { flushData(); } }
@Override public void close() { conn.close(); } }