java.io.Closeable, java.lang.AutoCloseable, org.eclipse.jetty.util.Callback, org.eclipse.jetty.util.thread.Invocablepublic class HttpContent
extends java.lang.Object
implements org.eclipse.jetty.util.Callback, java.io.Closeable
HttpContent is a stateful, linear representation of the request content provided
by a ContentProvider that can be traversed one-way to obtain content buffers to
send to a HTTP server.
HttpContent offers the notion of a one-way cursor to traverse the content.
The cursor starts in a virtual "before" position and can be advanced using advance()
until it reaches a virtual "after" position where the content is fully consumed.
+---+ +---+ +---+ +---+ +---+
| | | | | | | | | |
+---+ +---+ +---+ +---+ +---+
^ ^ ^ ^
| | --> advance() | |
| | last |
| | |
before | after
|
current
At each valid (non-before and non-after) cursor position, HttpContent provides the following state:
getByteBuffer()getContent()isLast()HttpContent may not have content, if the related ContentProvider is null, and this
is reflected by hasContent().
HttpContent may have deferred content, in which case advance()
moves the cursor to a position that provides null buffer and
content. When the deferred content is available, a further call to advance()
will move the cursor to a position that provides non null buffer and content.
| Constructor | Description |
|---|---|
HttpContent(ContentProvider provider) |
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
advance() |
Advances the cursor to the next block of content.
|
void |
close() |
|
void |
failed(java.lang.Throwable x) |
|
java.nio.ByteBuffer |
getByteBuffer() |
|
java.nio.ByteBuffer |
getContent() |
|
boolean |
hasContent() |
|
boolean |
isConsumed() |
|
boolean |
isLast() |
|
void |
succeeded() |
|
java.lang.String |
toString() |
public HttpContent(ContentProvider provider)
public boolean hasContent()
public boolean isLast()
public java.nio.ByteBuffer getByteBuffer()
ByteBuffer containing the content at the cursor's positionpublic java.nio.ByteBuffer getContent()
ByteBuffer.slice() of getByteBuffer() at the cursor's positionpublic boolean advance()
The next block of content may be valid (which yields a non-null buffer
returned by getByteBuffer()), but may also be deferred
(which yields a null buffer returned by getByteBuffer()).
If the block of content pointed by the new cursor position is valid, this method returns true.
public boolean isConsumed()
last position.public void succeeded()
succeeded in interface org.eclipse.jetty.util.Callbackpublic void failed(java.lang.Throwable x)
failed in interface org.eclipse.jetty.util.Callbackpublic void close()
close in interface java.lang.AutoCloseableclose in interface java.io.Closeablepublic java.lang.String toString()
toString in class java.lang.ObjectCopyright © 1995–2018 Webtide. All rights reserved.