예제 #1
0
  public void writeOut(int status) {
    IBuffer out;
    synchronized (this) {
      if (isClosed()) return;

      m_closed = true;

      out = detachBuffer();
      if (!out.isEmpty() && !out.endsWith(CR) && !out.endsWith(LF)) {
        out.write(CR[0]);
        out.write(LF[0]);
      }

      if (!out.isEmpty()) prependLength(out);

      // EOF
      out.write((byte) 0);
      out.write(status, IntCodec.bigEndian());
    }

    m_ss.write(m_session, out);
  }
예제 #2
0
  @Override
  public void flush() {
    final IBuffer buffer;
    synchronized (this) {
      buffer = m_buffer;
      if (buffer == null || buffer.isEmpty()) return;

      m_buffer = null;

      prependLength(buffer);
    }
    m_ss.write(m_session, buffer);
  }