Beispiel #1
0
        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());
            }
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
 public virtual void append(ByteBufferDesc buf)
 {
     if (buf == null)
     {
         Throwable.__ <suppressFillInStackTrace>();
         throw new NullPointerException();
     }
     this.queue.add(buf);
 }
Beispiel #4
0
        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);
        }