package org.webpieces.data.impl;
import java.nio.ByteBuffer;
import org.webpieces.data.api.BufferPool;
public abstract class SliceableDataWrapper extends AbstractDataWrapper {
private int refCount = 1;
public abstract ByteBuffer getSlicedBuffer(int offset, int length);
public void increaseRefCount() {
refCount++;
}
@Override
public void releaseUnderlyingBuffers(BufferPool pool) {
refCount--;
if(refCount <= 0)
releaseImpl(pool);
}
protected abstract void releaseImpl(BufferPool pool);
}