org.apache.http.impl.nio.codecs

## Class AbstractMessageWriter<T extends HttpMessage>

- java.lang.Object
- - org.apache.http.impl.nio.codecs.AbstractMessageWriter<T>

All Implemented Interfaces:
  NHttpMessageWriter<T>

Direct Known Subclasses:
  DefaultHttpRequestWriter, DefaultHttpResponseWriter, HttpRequestWriter, HttpResponseWriter

    @NotThreadSafe
    public abstract class AbstractMessageWriter<T extends HttpMessage>
    extends Object
    implements NHttpMessageWriter<T>

Abstract `NHttpMessageWriter` that serves as a base for all message writer implementations.

Since:
  4.0

### Field Summary

Fields
`protected CharArrayBuffer` `lineBuf`
`protected LineFormatter` `lineFormatter`
`protected SessionOutputBuffer` `sessionBuffer`

### Constructor Summary

Constructors
Constructor and Description
`AbstractMessageWriter(SessionOutputBuffer buffer, LineFormatter formatter)` Creates an instance of AbstractMessageWriter.
`AbstractMessageWriter(SessionOutputBuffer buffer, LineFormatter formatter, HttpParams params)` Deprecated. (4.3) use `AbstractMessageWriter(SessionOutputBuffer, LineFormatter)`

### Method Summary

Methods
`void` `reset()` Resets the writer.
`void` `write(T message)` Serializes out the HTTP message head.
`protected abstract void` `writeHeadLine(T message)` Writes out the first line of `HttpMessage`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### sessionBuffer

    protected final SessionOutputBuffer sessionBuffer

#### lineBuf

    protected final CharArrayBuffer lineBuf

#### lineFormatter

    protected final LineFormatter lineFormatter

### Constructor Detail

#### AbstractMessageWriter

    @Deprecated
    public AbstractMessageWriter(SessionOutputBuffer buffer,
                                    LineFormatter formatter,
                                    HttpParams params)

Deprecated. (4.3) use `AbstractMessageWriter(SessionOutputBuffer, LineFormatter)`
Creates an instance of this class.

Parameters:
  `buffer` - the session output buffer.
  `formatter` - the line formatter.
  `params` - HTTP parameters.

#### AbstractMessageWriter

    public AbstractMessageWriter(SessionOutputBuffer buffer,
                         LineFormatter formatter)

Creates an instance of AbstractMessageWriter.

Parameters:
  `buffer` - the session output buffer.
  `formatter` - the line formatter If `null` `BasicLineFormatter.INSTANCE` will be used.
Since:
  4.3

### Method Detail

#### reset

    public void reset()

Description copied from interface: `NHttpMessageWriter`
Resets the writer. The writer will be ready to start serializing another HTTP message.

Specified by:
  `reset` in interface `NHttpMessageWriter<T extends HttpMessage>`

#### writeHeadLine

    protected abstract void writeHeadLine(T message)
                                   throws IOException

Writes out the first line of `HttpMessage`.

Parameters:
  `message` - HTTP message.
Throws:
  `IOException`

#### write

    public void write(T message)
               throws IOException,
                      HttpException

Description copied from interface: `NHttpMessageWriter`
Serializes out the HTTP message head.

Specified by:
  `write` in interface `NHttpMessageWriter<T extends HttpMessage>`
Parameters:
  `message` - HTTP message.
Throws:
  `IOException` - in case of an I/O error.
  `HttpException` - in case the HTTP message is malformed or violates the HTTP protocol.