package org.opendedup.sdfs.monitor;
import java.nio.ByteBuffer;
import org.opendedup.sdfs.Main;
public class IOMonitor implements java.io.Serializable {
private static final long serialVersionUID = 6582549274733666474L;
private long virtualBytesWritten;
private long actualBytesWritten;
private long bytesRead;
private long duplicateBlocks;
public IOMonitor() {
}
public long getVirtualBytesWritten() {
return virtualBytesWritten;
}
public long getActualBytesWritten() {
return actualBytesWritten;
}
public long getBytesRead() {
return bytesRead;
}
public void addBytesRead(int len) {
this.bytesRead = this.bytesRead + len;
}
public void addActualBytesWritten(int len) {
this.actualBytesWritten = this.actualBytesWritten + len;
}
public void addVirtualBytesWritten(int len) {
this.virtualBytesWritten = this.virtualBytesWritten + len;
}
public void setVirtualBytesWritten(long len) {
this.virtualBytesWritten = len;
}
public long getDuplicateBlocks() {
return duplicateBlocks;
}
public void setDuplicateBlocks(long duplicateBlocks) {
this.duplicateBlocks = duplicateBlocks;
}
public void setActualBytesWritten(long actualBytesWritten) {
this.actualBytesWritten = actualBytesWritten;
}
public void setBytesRead(long bytesRead) {
this.bytesRead = bytesRead;
}
public void removeDuplicateBlock() {
this.duplicateBlocks = this.duplicateBlocks - Main.CHUNK_LENGTH;
}
public void addDulicateBlock() {
this.duplicateBlocks = this.duplicateBlocks + Main.CHUNK_LENGTH;;
}
public byte[] toByteArray() {
ByteBuffer buf = ByteBuffer.wrap(new byte[32]);
buf.putLong(this.virtualBytesWritten);
buf.putLong(this.actualBytesWritten);
buf.putLong(this.bytesRead);
buf.putLong(this.duplicateBlocks);
return buf.array();
}
public void fromByteArray(byte [] b) {
ByteBuffer buf = ByteBuffer.wrap(b);
this.virtualBytesWritten = buf.getLong();
this.actualBytesWritten = buf.getLong();
this.bytesRead = buf.getLong();
this.duplicateBlocks = buf.getLong();
}
}