public virtual void discard(int count) { int num = count; while (true) { if (count <= 0) { break; } ByteBufferDesc buffer = (ByteBufferDesc)this.queue.get(0); if (count < buffer.buffer.remaining()) { buffer.position(buffer.position() + count); count = 0; break; } this.queue.remove(0); BuffersStorage.getInstance().reuseFreeBuffer(buffer); count -= buffer.buffer.remaining(); } if (count != 0) { Throwable.__ <suppressFillInStackTrace>(); throw new PyroException(new StringBuilder().append("discarded ").append(num - count).append("/").append(num).append(" bytes").toString()); } }
public virtual void get(ByteBuffer dst) { if (dst == null) { Throwable.__ <suppressFillInStackTrace>(); throw new NullPointerException(); } Iterator iterator = this.queue.iterator(); do { if (!iterator.hasNext()) { break; } ByteBufferDesc desc = (ByteBufferDesc)iterator.next(); ByteBuffer buffer = desc.buffer.slice(); if (buffer.remaining() > dst.remaining()) { buffer.limit(dst.remaining()); dst.put(buffer); break; } dst.put(buffer); }while (dst.hasRemaining()); }
public virtual void append(ByteBufferDesc buf) { if (buf == null) { Throwable.__ <suppressFillInStackTrace>(); throw new NullPointerException(); } this.queue.add(buf); }
public virtual bool hasData() { this.queue.size(); Iterator iterator = this.queue.iterator(); while (iterator.hasNext()) { ByteBufferDesc desc = (ByteBufferDesc)iterator.next(); if (desc.hasRemaining()) { return(true); } } return(false); }