说明
这个类就是描述选取MappedFile中,一部分ByteBuffer 的结果
即提供随机读的操作
和MappedFile关系如下
和MappedFile关系MappedFile在后面再讲
属性
//开始位置,是绝对偏移,20位long型
private final long startOffset;
//对应的byteBuffer
private final ByteBuffer byteBuffer;
//对应的byteBuffer的大小
private int size;
//属于哪个mappedFile的一部分
private MappedFile mappedFile;
方法
比较简单直接贴
public SelectMappedBufferResult(long startOffset, ByteBuffer byteBuffer, int size, MappedFile mappedFile) {
this.startOffset = startOffset;
this.byteBuffer = byteBuffer;
this.size = size;
this.mappedFile = mappedFile;
}
public ByteBuffer getByteBuffer() {
return byteBuffer;
}
public int getSize() {
return size;
}
public void setSize(final int s) {
this.size = s;
this.byteBuffer.limit(this.size);
}
public MappedFile getMappedFile() {
return mappedFile;
}
// @Override
// protected void finalize() {
// if (this.mappedFile != null) {
// this.release();
// }
// }
public synchronized void release() {//释放mappedFile引用
if (this.mappedFile != null) {
this.mappedFile.release();
this.mappedFile = null;
}
}
public long getStartOffset() {
return startOffset;
}
注意
setSize涉及buffer的处理
release是释放mappedFile引用,之后再讲
网友评论