public Buffer peek(int index, int length) { if (_view == null) { _view = new View(this, -1, index, index + length, isReadOnly() ? READONLY : READWRITE); } else { _view.update(this.buffer()); _view.setMarkIndex(-1); _view.setGetIndex(0); _view.setPutIndex(index + length); _view.setGetIndex(index); } return _view; }
public int available() throws IOException { if (_contentView!=null && _contentView.length()>0) return _contentView.length(); if (_endp.isBlocking()) { if (_state>0 && _endp instanceof StreamEndPoint) return ((StreamEndPoint)_endp).getInputStream().available()>0?1:0; return 0; } parseNext(); return _contentView==null?0:_contentView.length(); }
@Override public boolean equals(Object obj) { return this==obj ||((obj instanceof Buffer)&&((Buffer)obj).equalsIgnoreCase(this)) || super.equals(obj); } }
public void update(int get, int put) { int a=_access; _access=READWRITE; setGetIndex(0); setPutIndex(put); setGetIndex(get); setMarkIndex(-1); _access=a; }
public Buffer getIndirectBuffer() { Buffer buffer = _indirectBuffer.get(); if (buffer==null) { Buffer buffer2=ResourceCache.this.getIndirectBuffer(_resource); if (buffer2==null) LOG.warn("Could not load "+this); else if (_indirectBuffer.compareAndSet(null,buffer2)) buffer=buffer2; else buffer=_indirectBuffer.get(); } if (buffer==null) return null; return new View(buffer); }
_tok0 = new View(_header); _tok1 = new View(_header); _tok0.setPutIndex(_tok0.getIndex()); _tok1.setPutIndex(_tok1.getIndex()); _contentView.update(chunk);
public void reset() _contentView.setGetIndex(_contentView.putIndex()); _state=_persistent?STATE_START:(_endp.isInputShutdown()?STATE_END:STATE_SEEKING_EOF); _contentLength=HttpTokens.UNKNOWN_CONTENT;
/** * Parse one HTTP request or response * @param rawHTTP Raw HTTP to parse * @return Any unparsed data in the rawHTTP (eg pipelined requests) * @throws IOException */ public String parse(String rawHTTP) throws IOException { _charset = _defaultCharset; ByteArrayBuffer buf = new ByteArrayBuffer(getByteArray(rawHTTP)); View view = new View(buf); HttpParser parser = new HttpParser(view,new PH()); parser.parse(); return getString(view.asArray()); }
public static Buffer getString(Buffer _buffer, View tok) { int len=((_buffer.peek()&0xFF)<<8)|(_buffer.peek(_buffer.getIndex()+1)&0xFF); if (len==0xffff) { _buffer.skip(2); return null; } int start=_buffer.getIndex(); tok.update(start+2,start+len+2); _buffer.skip(len+3); return tok; }
/** * Parse until END state. * This method will parse any remaining content in the current buffer as long as there is * no unconsumed content. It does not care about the {@link #getState current state} of the parser. * @see #parse * @see #parseNext */ public boolean parseAvailable() throws IOException { boolean progress=parseNext()>0; // continue parsing while (!isComplete() && _buffer!=null && _buffer.length()>0 && !_contentView.hasContent()) { progress |= parseNext()>0; } return progress; }
public void update(int get, int put) { int a=_access; _access=READWRITE; setGetIndex(0); setPutIndex(put); setGetIndex(get); setMarkIndex(-1); _access=a; }
public Buffer getDirectBuffer() { Buffer buffer = _directBuffer.get(); if (buffer==null) { Buffer buffer2=ResourceCache.this.getDirectBuffer(_resource); if (buffer2==null) LOG.warn("Could not load "+this); else if (_directBuffer.compareAndSet(null,buffer2)) buffer=buffer2; else buffer=_directBuffer.get(); } if (buffer==null) return null; return new View(buffer); }
public void reset() _contentView.setGetIndex(_contentView.putIndex()); _state=_persistent?STATE_START:(_endp.isInputShutdown()?STATE_END:STATE_SEEKING_EOF); _contentLength=HttpTokens.UNKNOWN_CONTENT;
/** * Parse one HTTP request or response * @param rawHTTP Raw HTTP to parse * @return Any unparsed data in the rawHTTP (eg pipelined requests) * @throws IOException */ public byte[] parse(byte[] rawHTTP, boolean isHeadResponse) throws IOException { _charset = _defaultCharset; ByteArrayBuffer buf = new ByteArrayBuffer(rawHTTP); View view = new View(buf); PH ph = new PH(); HttpParser parser = new HttpParser(view,ph); parser.setHeadResponse(isHeadResponse); parser.parse(); if (ph.isEarlyEOF()) throw new EofException(); return view.asArray(); }
/** * Parse until END state. * This method will parse any remaining content in the current buffer as long as there is * no unconsumed content. It does not care about the {@link #getState current state} of the parser. * @see #parse * @see #parseNext */ public boolean parseAvailable() throws IOException { boolean progress=parseNext()>0; // continue parsing while (!isComplete() && _buffer!=null && _buffer.length()>0 && !_contentView.hasContent()) { progress |= parseNext()>0; } return progress; }
public void update(int get, int put) { int a=_access; _access=READWRITE; setGetIndex(0); setPutIndex(put); setGetIndex(get); setMarkIndex(-1); _access=a; }
public Buffer peek(int index, int length) { if (_view == null) { _view = new View(this, -1, index, index + length, isReadOnly() ? READONLY : READWRITE); } else { _view.update(this.buffer()); _view.setMarkIndex(-1); _view.setGetIndex(0); _view.setPutIndex(index + length); _view.setGetIndex(index); } return _view; }
public Buffer getDirectBuffer() { Buffer buffer = _directBuffer.get(); if (buffer==null) { Buffer buffer2=ResourceCache.this.getDirectBuffer(_resource); if (buffer2==null) LOG.warn("Could not load "+this); else if (_directBuffer.compareAndSet(null,buffer2)) buffer=buffer2; else buffer=_directBuffer.get(); } if (buffer==null) return null; return new View(buffer); }
public void reset() _contentView.setGetIndex(_contentView.putIndex()); _state=_persistent?STATE_START:(_endp.isInputShutdown()?STATE_END:STATE_SEEKING_EOF); _contentLength=HttpTokens.UNKNOWN_CONTENT;