com.ning.http.client.providers.grizzly
Interface FeedableBodyGenerator.Feeder

All Known Implementing Classes:
FeedableBodyGenerator.BaseFeeder, FeedableBodyGenerator.NonBlockingFeeder, FeedableBodyGenerator.SimpleFeeder
Enclosing class:
FeedableBodyGenerator

public static interface FeedableBodyGenerator.Feeder

Specifies the functionality all Feeders must implement. Typically, developers need not worry about implementing this interface directly. It should be sufficient, for most use-cases, to simply use the FeedableBodyGenerator.NonBlockingFeeder or FeedableBodyGenerator.SimpleFeeder implementations.


Method Summary
 void feed(org.glassfish.grizzly.Buffer buffer, boolean last)
          This method will write the specified Buffer to the connection.
 void flush()
          This method will be invoked when it's possible to begin feeding data downstream.
 

Method Detail

flush

void flush()
           throws IOException
This method will be invoked when it's possible to begin feeding data downstream. Implementations of this method must use feed(Buffer, boolean) to perform the actual write.

Throws:
IOException - if an I/O error occurs.

feed

void feed(org.glassfish.grizzly.Buffer buffer,
          boolean last)
          throws IOException
This method will write the specified Buffer to the connection. Be aware that this method may block depending if data is being fed faster than it can write. How much data may be queued is dictated by FeedableBodyGenerator.setMaxPendingBytes(int). Once this threshold is exceeded, the method will block until the write queue length drops below the aforementioned threshold.

Parameters:
buffer - the Buffer to write.
last - flag indicating if this is the last buffer to send.
Throws:
IOException - if an I/O error occurs.
IllegalArgumentException - if buffer is null.
IllegalStateException - if this method is invoked before asynchronous transferring has been initiated.
See Also:
FeedableBodyGenerator.setMaxPendingBytes(int)


Copyright © 2014. All Rights Reserved.