public static Object FetchFromCache(string hash, Type type)
{
try {
MemcachedClient mc = new MemcachedClient();
string data = mc.Get(hash);
if (data == null || data == "")
return null;
XmlSerializer xs = new XmlSerializer(type);
MemoryStream ms = new MemoryStream(StrToByteArray(data));
ms.Seek(0, SeekOrigin.Begin);
return xs.Deserialize(ms);
} catch {
CoreData.QualityStandalone.simple_logger("MCH", "Cache: could not fetch cache object " + hash + " of type " + type.ToString());
return null;
}
}
public static void SaveToCache(Object inobj, string hash, Type type)
{
try
{
XmlSerializer xs = new XmlSerializer(type);
MemoryStream ms = new MemoryStream();
// serialize it
xs.Serialize(ms, inobj);
// save the data
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
string data = sr.ReadToEnd();
MemcachedClient mc = new MemcachedClient();
mc.Set(hash, data);
return;
}
catch
{
CoreData.QualityStandalone.simple_logger("MCH", "Cache: could not save to cache " + hash + " of type " + type.ToString());
}
}