Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.infinispan.commons.io;
  
  
 import java.util.Set;

A byte buffer that exposes the internal byte array with minimal copying

Author(s):
(various)
Since:
4.0
 
 public class ByteBufferImpl implements ByteBuffer {
    private final byte[] buf;
    private final int offset;
    private final int length;
 
    public ByteBufferImpl(byte[] bufint offsetint length) {
       if (buf == null)
          throw new IllegalArgumentException("Null buff not allowed!");
       if (buf.length < offset + length)
          throw new IllegalArgumentException("Incorrect arguments: buff.length"
                                                   + buf.length + ", offset=" + offset +", length="length);
       this. = buf;
       this. = offset;
       this. = length;
    }
 
    @Override
    public byte[] getBuf() {
       return ;
    }
 
    @Override
    public int getOffset() {
       return ;
    }
 
    @Override
    public int getLength() {
       return ;
    }
 
    @Override
    public ByteBufferImpl copy() {
       byte[] new_buf =  != null ? new byte[] : null;
       int new_length = new_buf != null ? new_buf.length : 0;
       if (new_buf != null)
          System.arraycopy(new_buf, 0, );
       return new ByteBufferImpl(new_buf, 0, new_length);
    }
 
    @Override
    public String toString() {
       StringBuilder sb = new StringBuilder();
       sb.append().append(" bytes");
       if ( > 0)
          sb.append(" (offset=").append().append(")");
       return sb.toString();
    }
 
    @Override
    public boolean equals(Object o) {
       if (this == oreturn true;
       if (!(o instanceof ByteBufferImpl)) return false;
 
       ByteBufferImpl that = (ByteBufferImplo;
 
       if ( != that.length)
          return false;
 
       for (int i = 0; i < i++)
          if ([ + i] != that.buf[that.offset + i])
             return false;
 
       return true;
    }
 
    @Override
    public int hashCode() {
       if ( == null)
          return 0;
 
       int result = 1;
       for (int i = 0; i < i++) {
          result = 31 * result + [ + i];
       }
       return result;
    }

   

Returns:
an input stream for the bytes in the buffer
   public InputStream getStream() {
      return new ByteArrayInputStream(getBuf(), getOffset(), getLength());
   }
      return java.nio.ByteBuffer.wrap();
   }
   public static class Externalizer extends AbstractExternalizer<ByteBufferImpl> {
      private static final long serialVersionUID = -5291318076267612501L;
      @Override
      public void writeObject(ObjectOutput outputByteBufferImpl bthrows IOException {
         UnsignedNumeric.writeUnsignedInt(outputb.length);
         output.write(b.bufb.offsetb.length);
      }
      @Override
         int length = UnsignedNumeric.readUnsignedInt(input);
         byte[] data = new byte[length];
         input.readFully(data, 0, length);
         return new ByteBufferImpl(data, 0, length);
      }
      @Override
      public Integer getId() {
         return .;
      }
      @Override
      @SuppressWarnings("unchecked")
      public Set<Class<? extends ByteBufferImpl>> getTypeClasses() {
         return Util.<Class<? extends ByteBufferImpl>>asSet(ByteBufferImpl.class);
      }
   }
New to GrepCode? Check out our FAQ X