示例#1
0
    // 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);
            }
        }
    }
示例#2
0
    // 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));
            }
        }
    }
示例#3
0
    // 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[]));
        }
    }