protected void invalidate() { ByteBuffer indirect = _indirectBuffer.getAndSet(null); if (indirect != null) _cachedSize.addAndGet(-BufferUtil.length(indirect)); ByteBuffer direct = _directBuffer.getAndSet(null); if (direct != null) _cachedSize.addAndGet(-BufferUtil.length(direct)); _mappedBuffer.getAndSet(null); _cachedFiles.decrementAndGet(); _resource.close(); }
protected void invalidate() { ByteBuffer indirect=_indirectBuffer.get(); if (indirect!=null && _indirectBuffer.compareAndSet(indirect,null)) _cachedSize.addAndGet(-BufferUtil.length(indirect)); ByteBuffer direct=_directBuffer.get(); if (direct!=null && !BufferUtil.isMappedBuffer(direct) && _directBuffer.compareAndSet(direct,null)) _cachedSize.addAndGet(-BufferUtil.length(direct)); _cachedFiles.decrementAndGet(); _resource.close(); }
/** * <p>Non-Blocking write, committing the response if needed.</p> * Called as last link in HttpOutput.Filter chain * @param content the content buffer to write * @param complete whether the content is complete for the response * @param callback Callback when complete or failed */ @Override public void write(ByteBuffer content, boolean complete, Callback callback) { _written+=BufferUtil.length(content); sendResponse(null,content,complete,callback); }
/** * <p>Non-Blocking write, committing the response if needed.</p> * Called as last link in HttpOutput.Filter chain * @param content the content buffer to write * @param complete whether the content is complete for the response * @param callback Callback when complete or failed */ @Override public void write(ByteBuffer content, boolean complete, Callback callback) { _written+=BufferUtil.length(content); sendResponse(null,content,complete,callback); }
@Override public ByteBuffer getIndirectBuffer() { ByteBuffer buffer = _indirectBuffer.get(); if (buffer == null) { ByteBuffer buffer2 = CachedContentFactory.this.getIndirectBuffer(_resource); if (buffer2 == null) LOG.warn("Could not load " + this); else if (_indirectBuffer.compareAndSet(null, buffer2)) { buffer = buffer2; if (_cachedSize.addAndGet(BufferUtil.length(buffer)) > _maxCacheSize) shrinkCache(); } else buffer = _indirectBuffer.get(); } if (buffer == null) return null; return buffer.slice(); }
@Override public ByteBuffer getIndirectBuffer() { ByteBuffer buffer = _indirectBuffer.get(); if (buffer==null) { ByteBuffer buffer2=ResourceCache.this.getIndirectBuffer(_resource); if (buffer2==null) LOG.warn("Could not load "+this); else if (_indirectBuffer.compareAndSet(null,buffer2)) { buffer=buffer2; if (_cachedSize.addAndGet(BufferUtil.length(buffer))>_maxCacheSize) shrinkCache(); } else buffer=_indirectBuffer.get(); } if (buffer==null) return null; return buffer.slice(); }
@Override public ByteBuffer getDirectBuffer() { ByteBuffer buffer = _directBuffer.get(); if (buffer==null) { ByteBuffer buffer2=ResourceCache.this.getDirectBuffer(_resource); if (buffer2==null) LOG.warn("Could not load "+this); else if (_directBuffer.compareAndSet(null,buffer2)) { buffer=buffer2; if (!BufferUtil.isMappedBuffer(buffer) && _cachedSize.addAndGet(BufferUtil.length(buffer))>_maxCacheSize) shrinkCache(); } else buffer=_directBuffer.get(); } if (buffer==null) return null; return buffer.asReadOnlyBuffer(); }
if (_cachedSize.addAndGet(BufferUtil.length(buffer)) > _maxCacheSize) shrinkCache();
private Result committed( ByteBuffer chunk, ByteBuffer content, boolean last) { int len = BufferUtil.length(content); // handle the content. if (len>0) { if (isChunking()) { if (chunk==null) return Result.NEED_CHUNK; BufferUtil.clearToFill(chunk); prepareChunk(chunk,len); BufferUtil.flipToFlush(chunk,0); } _contentPrepared+=len; } if (last) { _state=State.COMPLETING; return len>0?Result.FLUSH:Result.CONTINUE; } return len>0?Result.FLUSH:Result.DONE; }
private Result committed( ByteBuffer chunk, ByteBuffer content, boolean last) { int len = BufferUtil.length(content); // handle the content. if (len>0) { if (isChunking()) { if (chunk==null) return Result.NEED_CHUNK; BufferUtil.clearToFill(chunk); prepareChunk(chunk,len); BufferUtil.flipToFlush(chunk,0); } _contentPrepared+=len; } if (last) { _state=State.COMPLETING; return len>0?Result.FLUSH:Result.CONTINUE; } return len>0?Result.FLUSH:Result.DONE; }
int len=BufferUtil.length(buffer);
currentBatchMode = BatchMode.OFF; int payloadLength = BufferUtil.length(entry.frame.getPayload()); int approxFrameLength = Generator.MAX_HEADER_LENGTH + payloadLength;
int len = BufferUtil.length(buffer); boolean last = isLastContentToWrite(len);
int len=BufferUtil.length(buffer);
content=handler.badMessageError(status,reason,fields); sendResponse(new MetaData.Response(HttpVersion.HTTP_1_1,status,reason,fields,BufferUtil.length(content)),content ,true);
int len = BufferUtil.length(content); if (len>0)
int len = BufferUtil.length(content); if (len>0)
content=handler.badMessageError(status,reason,fields); sendResponse(new MetaData.Response(HttpVersion.HTTP_1_1,status,reason,fields,BufferUtil.length(content)),content ,true);