Package org.jboss.resteasy.spi

## Interface AsyncMessageBodyWriter<T>

- All Superinterfaces:
    `javax.ws.rs.ext.MessageBodyWriter<T>`
  All Known Subinterfaces:
    `AsyncBufferedMessageBodyWriter<T>`
  All Known Implementing Classes:
    `AbstractEntityProvider`, `AbstractJAXBProvider`, `AsyncStreamingOutputProvider`, `AtomEntryProvider`, `AtomFeedProvider`, `ByteArrayProvider`, `CollectionProvider`, `DataSourceProvider`, `DefaultBooleanWriter`, `DefaultNumberWriter`, `DefaultTextPlain`, `DocumentProvider`, `EnvelopedWriter`, `FastInfosetCollectionProvider`, `FastinfoSetElementProvider`, `FastInfosetMapProvider`, `FastinfoSetXmlRootElementProvider`, `FastinfoSetXmlSeeAlsoProvider`, `FastinfoSetXmlTypeProvider`, `FileProvider`, `FileRangeWriter`, `FormUrlEncodedProvider`, `IIOImageProvider`, `InputStreamProvider`, `JAXBElementProvider`, `JAXBXmlRootElementProvider`, `JAXBXmlSeeAlsoProvider`, `JAXBXmlTypeProvider`, `JaxrsFormProvider`, `JsonArrayProvider`, `JsonBindingProvider`, `JsonObjectProvider`, `JsonStructureProvider`, `JsonValueProvider`, `ListMultipartWriter`, `MapMultipartFormDataWriter`, `MapProvider`, `MimeMultipartProvider`, `MultipartFormAnnotationWriter`, `MultipartFormDataWriter`, `MultipartRelatedWriter`, `MultipartSignedWriter`, `MultipartWriter`, `PKCS7SignatureTextWriter`, `PKCS7SignatureWriter`, `ResteasyJackson2Provider`, `ServerFormUrlEncodedProvider`, `SourceProvider`, `SseEventProvider`, `StringTextStar`, `XopWithMultipartRelatedJAXBProvider`, `XopWithMultipartRelatedWriter`

      public interface AsyncMessageBodyWriter<T>
      extends javax.ws.rs.ext.MessageBodyWriter<T>

  MessageBodyWriter which supports async IO.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletionStage<Void>` | `asyncWriteTo​(T t, Class<?> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String,​Object> httpHeaders, AsyncOutputStream entityStream)` | Write a type to an HTTP message using async IO.

    - ### Methods inherited from interface javax.ws.rs.ext.MessageBodyWriter

      `getSize, isWriteable, writeTo`

- - ### Method Detail

    - #### asyncWriteTo

          CompletionStage<Void> asyncWriteTo​(T t,
                                             Class<?> type,
                                             Type genericType,
                                             Annotation[] annotations,
                                             javax.ws.rs.core.MediaType mediaType,
                                             javax.ws.rs.core.MultivaluedMap<String,​Object> httpHeaders,
                                             AsyncOutputStream entityStream)

      Write a type to an HTTP message using async IO. The message header map is mutable but any changes must be made before writing to the async output stream since the headers will be flushed prior to writing the message body.
      Parameters:
        `t` - the instance to write.
        `type` - the class of instance that is to be written.
        `genericType` - the type of instance to be written. `GenericEntity` provides a way to specify this information at runtime.
        `annotations` - an array of the annotations attached to the message entity instance.
        `mediaType` - the media type of the HTTP entity.
        `httpHeaders` - a mutable map of the HTTP message headers.
        `entityStream` - the `AsyncOutputStream` for the HTTP entity. The implementation should not close the output stream.
      Returns:
        a `CompletionStage` indicating completion
      Throws:
        `IOException` - if an IO error arises (in the returned `CompletionStage`)
        `javax.ws.rs.WebApplicationException` - if a specific HTTP error response needs to be produced (in the returned `CompletionStage`). Only effective if thrown prior to the message being committed.