Пример #1
0
        public override string DoProcess(Request request)
        {
            var redisObject = store.Get(request.args[0]);
            var valToIncBy = long.Parse(request.args[1]);
            if (redisObject == null)
            {
                var redisString = new RedisString("0");
                long longValue;
                redisString.IncrementBy(valToIncBy, out longValue);
                store.Set(request.args[0], redisString);
                return Reply.IntgerReply(longValue);
            }
            if (!redisObject.IsRedisString())
            {
                return Reply.ErrWrongType();
            }

            var s = redisObject as RedisString;
            if(s.IsConvertibleToLong())
            {
                long longValue;
                var success = s.IncrementBy(valToIncBy, out longValue);
                return success ? Reply.IntgerReply(longValue) : Reply.OverFlow();
            }
            return Reply.ValueNotInt();
        }
Пример #2
0
 public string Process(Request request)
 {
     if(!Validate(request))
     {
         return Reply.ErrBadRequest();
     }
     return DoProcess(request);
 }
Пример #3
0
 public override bool Validate(Request request)
 {
     if (request.args.Count == 2)
     {
         long res;
         return long.TryParse(request.args[1], out res);
     }
     return false;
 }
Пример #4
0
 public override bool Validate(Request request)
 {
     if(request.args.Count == 3)
     {
         int i;
         return int.TryParse(request.args[1], out i) && int.TryParse(request.args[2], out i);
     }
     return false;
 }
Пример #5
0
        public override string DoProcess(Request request)
        {
            var redisObject = store.Get(request.args[0]);

            if (redisObject == null)
                return Reply.Nil();
            if (!redisObject.IsRedisString())
                return Reply.ErrWrongType();
            return Reply.BulkReply(redisObject.ToString());
        }
Пример #6
0
        public override string DoProcess(Request request)
        {
            var redisObject = store.Get(request.args[0]);
            if(redisObject == null)
            {
                return Reply.IntgerReply(0);
            }

            if(!redisObject.IsRedisString())
            {
                return Reply.ErrWrongType();
            }

            return Reply.IntgerReply((redisObject as RedisString).Length());
        }
Пример #7
0
        public override string DoProcess(Request request)
        {
            var redisObject = store.Get(request.args[0]);
            if(redisObject == null)
            {
                return Reply.BulkReply("");
            }

            if(!redisObject.IsRedisString())
            {
                return Reply.ErrWrongType();
            }

            return Reply.BulkReply((redisObject as RedisString).Substring(int.Parse(request.args[1]),int.Parse(request.args[2])));
        }
Пример #8
0
        public override string DoProcess(Request request)
        {
            var redisObject = store.Get(request.args[0]);

            if(redisObject == null)
            {
                var redisString = new RedisString(request.args[1]);
                store.Set(request.args[0],redisString);
                return Reply.IntgerReply(redisString.Length());
            }

            if (!redisObject.IsRedisString())
            {
                return Reply.ErrWrongType();
            }

            var s = redisObject as RedisString;
            s.Append(request.args[1]);
            return Reply.IntgerReply(s.Length());
        }
Пример #9
0
 public override bool Validate(Request request)
 {
     return request.args.Count == 1;
 }
Пример #10
0
 public static string ProcessRequest(Request request)
 {
     if(!CommandTable.ContainsKey(request.command))
         return Reply.ErrInvalidCommand(request.command);
     return CommandTable[request.command].Process(request);
 }
Пример #11
0
 public override string DoProcess(Request request)
 {
     return Reply.Pong();
 }
Пример #12
0
 public override bool Validate(Request request)
 {
     return true;
 }
Пример #13
0
 public override string DoProcess(Request request)
 {
     store.Set(request.args[0],new RedisString(request.args[1]));
     return Reply.Ok();
 }
Пример #14
0
 public void Enqueue(Request request)
 {
     queue.Enqueue(request);
 }
Пример #15
0
 public abstract string DoProcess(Request request);
Пример #16
0
 public abstract bool Validate(Request request);