package com.robonobo.common.pageio.buffer;
import java.io.IOException;
import java.util.List;
import com.robonobo.mina.external.buffer.PageInfo;
import com.robonobo.mina.external.buffer.StreamPosition;
/**
* Provides for the central management of page info
*
* @author macavity
*
*/
public interface PageInfoStore {
public int getNumPageInfos(String streamId);
public boolean haveGotPage(String streamId, long pageNum);
public void putPageInfo(String streamId, PageInfo pi) throws IOException;
public void putAllPageInfo(String streamId, List<PageInfo> pis) throws IOException;
public PageInfo getPageInfo(String streamId, long pageNum);
public long getTotalPages(String streamId);
public void setTotalPages(String streamId, long totalPages);
public long getPagesReceived(String streamId);
public long getBytesReceived(String streamId);
public long getLastContiguousPage(String streamId);
public StreamPosition getStreamPosition(String streamId);
}