Provides buffering for the HTTP headers (allowing responses to be reset before they have been committed) and the link to the Socket for writing the headers (once committed) and the response body. Note that buffering of the response body happens at a higher level.
| 34 | * body happens at a higher level. |
| 35 | */ |
| 36 | public class Http11OutputBuffer implements HttpOutputBuffer { |
| 37 | |
| 38 | // -------------------------------------------------------------- Variables |
| 39 | |
| 40 | /** |
| 41 | * The string manager for this package. |
| 42 | */ |
| 43 | protected static final StringManager sm = StringManager.getManager(Http11OutputBuffer.class); |
| 44 | |
| 45 | |
| 46 | // ----------------------------------------------------- Instance Variables |
| 47 | |
| 48 | /** |
| 49 | * Associated Coyote response. |
| 50 | */ |
| 51 | protected final Response response; |
| 52 | |
| 53 | |
| 54 | private volatile boolean ackSent = false; |
| 55 | |
| 56 | |
| 57 | /** |
| 58 | * Finished flag. |
| 59 | */ |
| 60 | protected boolean responseFinished; |
| 61 | |
| 62 | |
| 63 | /** |
| 64 | * The buffer used for header composition. |
| 65 | */ |
| 66 | protected final ByteBuffer headerBuffer; |
| 67 | |
| 68 | |
| 69 | /** |
| 70 | * Filter library for processing the response body. |
| 71 | */ |
| 72 | protected OutputFilter[] filterLibrary; |
| 73 | |
| 74 | |
| 75 | /** |
| 76 | * Active filters for the current request. |
| 77 | */ |
| 78 | protected OutputFilter[] activeFilters; |
| 79 | |
| 80 | |
| 81 | /** |
| 82 | * Index of the last active filter. |
| 83 | */ |
| 84 | protected int lastActiveFilter; |
| 85 | |
| 86 | |
| 87 | /** |
| 88 | * Underlying output buffer. |
| 89 | */ |
| 90 | protected HttpOutputBuffer outputStreamOutputBuffer; |
| 91 | |
| 92 | |
| 93 | /** |
nothing calls this directly
no test coverage detected