Top Description Methods
org.eclipse.jetty.ee10.servlet

public Interface ContentProducer

Known Direct Implementers
org.eclipse.jetty.ee10.servlet.AsyncContentProducer, org.eclipse.jetty.ee10.servlet.BlockingContentProducer
Imports
org.eclipse.jetty.io.Content

ContentProducer is the bridge between HttpInput and Content.Source.

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

the available byte count.
available
()

Get the byte count that can immediately be read from this ContentProducer instance or the underlying Content.Source.

public void
checkMinDataRate()

Check if the current data rate consumption is above the minimal rate.

public boolean

Returns:

true if EOF was reached.
consumeAvailable
()

Fail all content currently available in this ContentProducer instance as well as in the underlying Content.Source.

public long

Returns:

the byte count produced by the underlying Content.Source.
getBytesArrived
()

Get the byte count produced by the underlying Content.Source.

public boolean

Returns:

true if this ContentProducer instance contains content, false otherwise.
hasChunk
()

Check if this ContentProducer instance contains some content chunk without querying the underlying Content.Source.

public boolean

Returns:

true if the underlying Content.Source reached an error content, false otherwise.
isError
()

Check if the underlying Content.Source reached an error content.

public boolean

Returns:

true if some content is immediately available, false otherwise.
isReady
()

Check if this ContentProducer instance has some content that can be read without blocking.

public Content.Chunk

Returns:

the next content chunk that can be read from or null if the implementation does not block and has no available content.
nextChunk
()

Get the next content chunk that can be read from or that describes the terminal condition that was reached (error, eof).

public boolean

Returns:

true if the thread has to be rescheduled, false otherwise.
onContentProducible
()

Wake up the thread that is waiting for the next content.

public void
reclaim(Content.Chunk chunk)

Free up the content by calling Content.Chunk#release() on it and updating this instance's internal state.

public void
recycle()

A recycled ContentProducer will only produce special content with a non-null error until reopen() is called.

public void
reopen()

Reset all internal state, making this is instance logically equivalent to a freshly allocated one.

Method Detail

availableback to summary
public int available()

Get the byte count that can immediately be read from this ContentProducer instance or the underlying Content.Source. This call is always non-blocking. Doesn't change state.

Returns:int

the available byte count.

checkMinDataRateback to summary
public void checkMinDataRate()

Check if the current data rate consumption is above the minimal rate. Abort the channel, fail the content currently available and throw a BadMessageException(REQUEST_TIMEOUT_408) if the check fails.

consumeAvailableback to summary
public boolean consumeAvailable()

Fail all content currently available in this ContentProducer instance as well as in the underlying Content.Source. This call is always non-blocking. Doesn't change state.

Returns:boolean

true if EOF was reached.

getBytesArrivedback to summary
public long getBytesArrived()

Get the byte count produced by the underlying Content.Source. This call is always non-blocking. Doesn't change state.

Returns:long

the byte count produced by the underlying Content.Source.

hasChunkback to summary
public boolean hasChunk()

Check if this ContentProducer instance contains some content chunk without querying the underlying Content.Source. This call is always non-blocking. Doesn't change state. Doesn't query the HttpChannel.

Returns:boolean

true if this ContentProducer instance contains content, false otherwise.

isErrorback to summary
public boolean isError()

Check if the underlying Content.Source reached an error content. This call is always non-blocking. Doesn't change state. Doesn't query the HttpChannel.

Returns:boolean

true if the underlying Content.Source reached an error content, false otherwise.

isReadyback to summary
public boolean isReady()

Check if this ContentProducer instance has some content that can be read without blocking. If there is some, the next call to nextChunk() will not block. If there isn't any and the implementation does not block, this method will trigger a jakarta.servlet.ReadListener callback once some content is available. This call is always non-blocking.

Returns:boolean

true if some content is immediately available, false otherwise.

nextChunkback to summary
public Content.Chunk nextChunk()

Get the next content chunk that can be read from or that describes the terminal condition that was reached (error, eof). This call may or may not block until some content is available, depending on the implementation. After this call, state can be either of UNREADY or IDLE.

Returns:Content.Chunk

the next content chunk that can be read from or null if the implementation does not block and has no available content.

onContentProducibleback to summary
public boolean onContentProducible()

Wake up the thread that is waiting for the next content. After this call, state can be READY.

Returns:boolean

true if the thread has to be rescheduled, false otherwise.

reclaimback to summary
public void reclaim(Content.Chunk chunk)

Free up the content by calling Content.Chunk#release() on it and updating this instance's internal state.

recycleback to summary
public void recycle()

A recycled ContentProducer will only produce special content with a non-null error until reopen() is called.

reopenback to summary
public void reopen()

Reset all internal state, making this is instance logically equivalent to a freshly allocated one.