// Remove public static IEnumerator Remove(string bucketName, string key, ActionOnResult <bool> func) { var stopWatch = Stopwatch.StartNew(); var bucket = new Bucket(bucketName); var request = bucket.Remove(key); yield return(request.WaitUntilDone()); stopWatch.Stop(); if (request.isSuccessful) { LogManager.DB.Log(FormatSuccess(key, "remove", bucketName, null) + " (" + stopWatch.ElapsedMilliseconds + " ms)"); if (func != null) { func(true); } } else { LogManager.DB.LogWarning(FormatFail(key, "remove", bucketName) + " (" + stopWatch.ElapsedMilliseconds + " ms)"); if (func != null) { func(false); } } }
// Set public static IEnumerator Set <T>(string bucketName, string key, T val, ActionOnResult <T> func) { var stopWatch = Stopwatch.StartNew(); var bucket = new Bucket(bucketName); var request = bucket.Set(key, val, Encoding.Json); yield return(request.WaitUntilDone()); stopWatch.Stop(); if (request.isSuccessful) { LogManager.DB.Log(FormatSuccess(key, "set", bucketName, val) + " (" + stopWatch.ElapsedMilliseconds + " ms)"); if (func != null) { func(val); } } else { LogManager.DB.LogWarning(FormatFail(key, "set", bucketName) + " (" + stopWatch.ElapsedMilliseconds + " ms)"); if (func != null) { func(default(T)); } } }
// MapReduce public static IEnumerator MapReduce <T>(string bucketName, string jsMapPhase, string jsReducePhase, object argument, ActionOnResult <T[]> func) { var stopWatch = Stopwatch.StartNew(); var bucket = new Bucket(bucketName); var mapReduceRequest = bucket.MapReduce( new JavaScriptMapPhase(jsMapPhase), new JavaScriptReducePhase(jsReducePhase, argument) ); // Wait until the request finishes yield return(mapReduceRequest.WaitUntilDone()); stopWatch.Stop(); string logInfo = logBucketPrefix + bucketName + logBucketMid + argument.ToString() + logBucketPostfix; if (mapReduceRequest.isSuccessful) { var results = mapReduceRequest.GetResult <T>().ToArray(); LogManager.DB.Log("MapReduce successful: " + logInfo + " -> " + typeof(T).ToString() + "[" + results.Length + "] (" + stopWatch.ElapsedMilliseconds + " ms)"); func(results); } else { LogManager.DB.LogWarning("MapReduce failed: " + logInfo + " -> " + mapReduceRequest.GetErrorString() + " (" + stopWatch.ElapsedMilliseconds + " ms)"); func(default(T[])); } }