package edu.berkeley.lipstick.storage;
import edu.berkeley.lipstick.config.Config;
import edu.berkeley.lipstick.simpleserver.SimpleServerService;
import java.nio.ByteBuffer;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TTransportException;
public class SimpleServerStorage {
SimpleServerService.Client client;
TTransport transport;
long bytesWritten = 0L;
long bytesRead = 0L;
public void open() throws Exception {
transport = new TSocket(Config.getSimpleBackendHost(), Config.getSimpleBackendPort());
client = new SimpleServerService.Client(new TBinaryProtocol(transport));
transport.open();
}
public void close() throws Exception {
transport.close();
}
public byte[] get(String key) throws Exception {
try {
byte [] ret = client.get(key).array();
bytesRead += ret.length;
return ret;
} catch (TTransportException e) {
return null;
}
}
public void put(String key, byte[] value, long timestamp) throws Exception {
bytesWritten += value.length + key.length();
client.put(key, ByteBuffer.wrap(value), timestamp);
}
public long getBytesWritten() {
return bytesWritten;
}
public long getBytesRead() {
return bytesRead;
}
public long getReadLatency() {
return -1;
}
public long getWriteLatency() {
return -1;
}
}