@Override
// IOMapperBase
public Long doIO(Reporter reporter, String name, long totalSize // in bytes
) throws IOException {
PositionedReadable in = (PositionedReadable) this.stream;
long actualSize = 0;
for (long pos = nextOffset(-1); actualSize < totalSize; pos = nextOffset(pos)) {
int curSize = in.read(pos, buffer, 0, bufferSize);
if (curSize < 0)
break;
actualSize += curSize;
reporter.setStatus("reading " + name + "@" + actualSize + "/" + totalSize + " ::host = "
+ hostName);