org.jgroups.util.Buffer Maven / Gradle / Ivy
package org.jgroups.util;
/**
* Buffer with an offset and length. Will be replaced with NIO equivalent once JDK 1.4 becomes baseline. This class is
* immutable. Note that the underlying byte[] buffer must not be changed as long as this Buffer instance is in use !
* @author Bela Ban
*/
public class Buffer {
private final byte[] buf;
private final int offset;
private final int length;
public Buffer(byte[] buf, int offset, int length) {
this.buf=buf;
this.offset=offset;
this.length=length;
}
public Buffer(byte[] buf) {
this(buf, 0, buf.length);
}
public byte[] getBuf() {
return buf;
}
public int getOffset() {
return offset;
}
public int getLength() {
return length;
}
public Buffer copy() {
byte[] new_buf=buf != null? new byte[length] : null;
int new_length=new_buf != null? new_buf.length : 0;
if(new_buf != null)
System.arraycopy(buf, offset, new_buf, 0, length);
return new Buffer(new_buf, 0, new_length);
}
public String toString() {
StringBuilder sb=new StringBuilder();
sb.append(length).append(" bytes");
if(offset > 0)
sb.append(" (offset=").append(offset).append(")");
return sb.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy