package com.google.android.diskusage.datasource.debug;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import com.google.android.diskusage.proto.PortableStreamProto;
public class PortableStreamProtoReaderImpl extends InputStream {
private final PortableStreamProto proto;
private final ByteArrayInputStream is;
public PortableStreamProtoReaderImpl(PortableStreamProto proto) {
this.proto = proto;
this.is = new ByteArrayInputStream(proto.data);
}
public static PortableStreamProtoReaderImpl create(
PortableStreamProto proto) {
return new PortableStreamProtoReaderImpl(proto);
}
@Override
public int read() throws IOException {
int res = is.read();
if (res == -1) {
PortableExceptionProtoImpl.throwIOException(proto.readException);
}
return res;
}
@Override
public int read(byte[] buffer, int byteOffset, int byteCount)
throws IOException {
int res = is.read(buffer, byteOffset, byteCount);
if (res == -1) {
PortableExceptionProtoImpl.throwIOException(proto.readException);
}
return res;
}
@Override
public void close() throws IOException {
is.close();
PortableExceptionProtoImpl.throwIOException(proto.closeException);
}
}