package com.dgrid.helpers.impl;
import java.util.Date;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.dgrid.errors.TransportException;
import com.dgrid.gen.InvalidApiKey;
import com.dgrid.helpers.MemcachedHelper;
import com.dgrid.service.DGridClient;
public class MemcachedHelperImpl implements MemcachedHelper
{
private Log log = LogFactory.getLog(getClass());
private MemCachedClient client = new MemCachedClient();
private String servers;
private boolean compat = false;
public void setServers(String servers)
{
this.servers = servers;
}
public void setCompatibility(boolean compat)
{
this.compat = compat;
}
public void init() throws TransportException, InvalidApiKey
{
log.trace("init()");
SockIOPool pool = SockIOPool.getInstance();
String[] serverArray = servers.split(" ");
if (compat)
{
pool.setHashingAlg(SockIOPool.NEW_COMPAT_HASH);
client.setPrimitiveAsString(true);
client.setSanitizeKeys(false);
}
pool.setServers(serverArray);
pool.initialize();
}
public boolean add(String key, Object value)
{
log.trace("add()");
return client.add(key, value);
}
public boolean add(String key, Object value, Date expiry)
{
log.trace("add()");
return client.add(key, value, expiry);
}
public boolean add(String key, Object value, Date expiry, int hashCode)
{
log.trace("add()");
return client.add(key, value, expiry, hashCode);
}
public boolean add(String key, Object value, int hashCode)
{
log.trace("add()");
return client.add(key, value, hashCode);
}
public long addOrDecr(String key)
{
log.trace("addOrDecr()");
return client.addOrDecr(key);
}
public long addOrDecr(String key, long inc)
{
log.trace("addOrDecr()");
return client.addOrDecr(key, inc);
}
public long addOrDecr(String key, long inc, int hashCode)
{
log.trace("addOrDecr()");
return client.addOrDecr(key, inc, hashCode);
}
public long addOrIncr(String key)
{
log.trace("addOrIncr()");
return client.addOrIncr(key);
}
public long addOrIncr(String key, long inc)
{
log.trace("addOrIncr()");
return client.addOrIncr(key, inc);
}
public long addOrIncr(String key, long inc, int hashCode)
{
log.trace("addOrIncr()");
return client.addOrIncr(key, inc, hashCode);
}
public boolean delete(String key)
{
log.trace("delete()");
return client.delete(key);
}
public boolean delete(String key, Date expiry)
{
log.trace("delete()");
return client.delete(key, expiry);
}
public boolean delete(String key, int hashCode, Date expiry)
{
log.trace("delete()");
return client.delete(key, hashCode, expiry);
}
public boolean flushAll()
{
log.trace("flushAll()");
return client.flushAll();
}
public Object get(String key)
{
log.trace("get()");
return client.get(key);
}
public Object get(String key, int hashCode)
{
log.trace("get()");
return client.get(key, hashCode);
}
public long getCounter(String key)
{
log.trace("getCounter()");
return client.getCounter(key);
}
public long getCounter(String key, int hashCode)
{
log.trace("getCounter()");
return client.getCounter(key, hashCode);
}
public MemCachedClient getMemCachedClient()
{
log.trace("getMemCachedClient()");
return client;
}
public boolean keyExists(String key)
{
log.trace("keyExists()");
return client.keyExists(key);
}
public boolean replace(String key, Object value)
{
log.trace("replace()");
return client.replace(key, value);
}
public boolean replace(String key, Object value, Date expiry)
{
log.trace("replace()");
return client.replace(key, value, expiry);
}
public boolean replace(String key, Object value, Date expiry, int hashCode)
{
log.trace("replace()");
return client.replace(key, value, expiry, hashCode);
}
public boolean set(String key, Object value)
{
log.trace("set()");
return client.set(key, value);
}
public boolean set(String key, Object value, Date expiry)
{
log.trace("set()");
return client.set(key, value, expiry);
}
public boolean set(String key, Object value, Date expiry, int hashCode)
{
log.trace("set()");
return client.set(key, value, expiry, hashCode);
}
public boolean set(String key, Object value, int hashCode)
{
log.trace("set()");
return client.set(key, value, hashCode);
}
public Map stats()
{
log.trace("stats()");
return client.stats();
}
public boolean storeCounter(String key, long counter)
{
log.trace("storeCounter()");
return client.storeCounter(key, counter);
}
public boolean storeCounter(String key, long counter, int hashCode)
{
log.trace("storeCounter()");
return client.storeCounter(key, counter, hashCode);
}
}