/** * End request (consumes leftover bytes). * * @throws IOException an undelying I/O error occured */ public void endRequest() throws IOException { if (swallowInput && (lastActiveFilter != -1)) { int extraBytes = (int) activeFilters[lastActiveFilter].end(); pos = pos - extraBytes; } }
public void removeActiveFilters() { // Recycle filters for (int i = 0; i <= lastActiveFilter; i++) { activeFilters[i].recycle(); } lastActiveFilter = -1; }
/** * Add an input filter to the filter library. */ public void addActiveFilter(InputFilter filter) { if (lastActiveFilter == -1) { filter.setBuffer(inputStreamInputBuffer); } else { for (int i = 0; i <= lastActiveFilter; i++) { if (activeFilters[i] == filter) return; } filter.setBuffer(activeFilters[lastActiveFilter]); } activeFilters[++lastActiveFilter] = filter; filter.setRequest(request); }
/** * Add an input filter to the current request. * * @return false if the encoding was not found (which would mean it is * unsupported) */ protected boolean addInputFilter(InputFilter[] inputFilters, String encodingName) { if (encodingName.equals("identity")) { // Skip } else if (encodingName.equals("chunked")) { inputBuffer.addActiveFilter(inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { for (int i = 2; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName().toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); return true; } } return false; } return true; }
/** * Read some bytes. */ public int doRead(ByteChunk chunk, Request req) throws IOException { if (lastActiveFilter == -1) return inputStreamInputBuffer.doRead(chunk, req); else return activeFilters[lastActiveFilter].doRead(chunk,req); }
/** * * @param param */ private void requestSetBodyReplay(Object param) { ByteChunk body = (ByteChunk) param; InputFilter savedBody = new SavedRequestInputFilter(body); savedBody.setRequest(request); InternalNioInputBuffer internalBuffer = (InternalNioInputBuffer) request.getInputBuffer(); internalBuffer.addActiveFilter(savedBody); }
/** * Available bytes (note that due to encoding, this may not correspond ) */ public int available() { int result = (lastValid - pos); if ((result == 0) && (lastActiveFilter >= 0)) { for (int i = 0; (result == 0) && (i <= lastActiveFilter); i++) { result = activeFilters[i].available(); } } return result; }
/** * Add an input filter to the current request. * * @return false if the encoding was not found (which would mean it is * unsupported) */ protected boolean addInputFilter(InputFilter[] inputFilters, String encodingName) { if (encodingName.equals("identity")) { // Skip } else if (encodingName.equals("chunked")) { inputBuffer.addActiveFilter (inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { for (int i = 2; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName() .toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); return true; } } return false; } return true; }
/** * Read some bytes. */ @Override public int doRead(ByteChunk chunk, Request req) throws IOException { if (lastActiveFilter == -1) return inputStreamInputBuffer.doRead(chunk, req); else return activeFilters[lastActiveFilter].doRead(chunk,req); } }
savedBody.setRequest(request);
/** * Available bytes (note that due to encoding, this may not correspond ) */ public int available() { int result = (lastValid - pos); if ((result == 0) && (lastActiveFilter >= 0)) { for (int i = 0; (result == 0) && (i <= lastActiveFilter); i++) { result = activeFilters[i].available(); } } return result; }
/** * Add an input filter to the filter library. */ public void addActiveFilter(InputFilter filter) { if (lastActiveFilter == -1) { filter.setBuffer(inputStreamInputBuffer); } else { for (int i = 0; i <= lastActiveFilter; i++) { if (activeFilters[i] == filter) return; } filter.setBuffer(activeFilters[lastActiveFilter]); } activeFilters[++lastActiveFilter] = filter; filter.setRequest(request); }
public void removeActiveFilters() { // Recycle filters for (int i = 0; i <= lastActiveFilter; i++) { activeFilters[i].recycle(); } lastActiveFilter = -1; readTimeout = Integer.MAX_VALUE; }
/** * Add an input filter to the current request. * * @return false if the encoding was not found (which would mean it is * unsupported) */ protected boolean addInputFilter(InputFilter[] inputFilters, String encodingName) { if (encodingName.equals("identity")) { // Skip } else if (encodingName.equals("chunked")) { inputBuffer.addActiveFilter (inputFilters[Constants.CHUNKED_FILTER]); contentDelimitation = true; } else { for (int i = 2; i < inputFilters.length; i++) { if (inputFilters[i].getEncodingName() .toString().equals(encodingName)) { inputBuffer.addActiveFilter(inputFilters[i]); return true; } } return false; } return true; }
/** * Read some bytes. */ @Override public int doRead(ByteChunk chunk, Request req) throws IOException { if (lastActiveFilter == -1) return inputStreamInputBuffer.doRead(chunk, req); else return activeFilters[lastActiveFilter].doRead(chunk,req); }
/** * End request (consumes leftover bytes). * * @throws IOException an underlying I/O error occurred */ public void endRequest() throws IOException { if (swallowInput && (lastActiveFilter != -1)) { int extraBytes = (int) activeFilters[lastActiveFilter].end(); pos = pos - extraBytes; } }
savedBody.setRequest(request);
/** * Available bytes (note that due to encoding, this may not correspond ) */ public int available() { int result = (lastValid - pos); if ((result == 0) && (lastActiveFilter >= 0)) { for (int i = 0; (result == 0) && (i <= lastActiveFilter); i++) { result = activeFilters[i].available(); } } return result; }
/** * Add an input filter to the filter library. */ public void addActiveFilter(InputFilter filter) { if (lastActiveFilter == -1) { filter.setBuffer(inputStreamInputBuffer); } else { for (int i = 0; i <= lastActiveFilter; i++) { if (activeFilters[i] == filter) return; } filter.setBuffer(activeFilters[lastActiveFilter]); } activeFilters[++lastActiveFilter] = filter; filter.setRequest(request); }
/** * Recycle the input buffer. This should be called when closing the * connection. */ public void recycle() { // Recycle Request object request.recycle(); // Recycle filters for (int i = 0; i <= lastActiveFilter; i++) { activeFilters[i].recycle(); } lastValid = 0; pos = 0; lastActiveFilter = -1; parsingHeader = true; swallowInput = true; }