package me.brandonc.datastore.memcached; import java.util.concurrent.TimeoutException; import me.brandonc.benchmark.AbstractKeyValueAction; import me.brandonc.benchmark.Context; import me.brandonc.benchmark.exception.OperationException; import net.rubyeye.xmemcached.XMemcachedClient; import net.rubyeye.xmemcached.exception.MemcachedException; public class Set extends AbstractKeyValueAction<XMemcachedClient> { public Set() { super("Memcached-Set"); } private int expired; private int opTimeout; @Override public boolean isAutoClean() { return true; } @Override public void setup(Context<XMemcachedClient> context) { super.setup(context); expired = context.getConfiguration().getIntValue("memcached.expired"); opTimeout = context.getConfiguration().getIntValue("memcached.opTimeout"); } @Override public boolean doAction(XMemcachedClient connection, String key, String value) { try { return connection.set(key, expired, value, opTimeout); } catch (TimeoutException e) { throw new OperationException(e); } catch (InterruptedException e) { throw new OperationException(e); } catch (MemcachedException e) { throw new OperationException(e); } } }