func replace(req *proto.MCRequest, cache *cache.Cache) *proto.MCResponse { res := proto.NewResStatus(req.Opcode, proto.STORED) if err := cache.Replace(req.Key, req.Value, time.Duration(req.Expires)*time.Second); err != nil { res = proto.NewResStatus(req.Opcode, proto.NOT_STORED) } return res }
func gets(req *proto.MCRequest, cache *cache.Cache) *proto.MCResponse { value, found := cache.Get(req.Key) res := proto.NewResFull(req.Opcode, proto.SUCCESS, req.Key, req.Flags, found) if found == false { res.Status = proto.END } else { valueb := value.([]byte) res.Value = make([]byte, len(valueb)) copy(res.Value, valueb) } return res }
func delete(req *proto.MCRequest, cache *cache.Cache) *proto.MCResponse { cache.Delete(req.Key) res := proto.NewResStatus(req.Opcode, proto.DELETED) return res }
func set(req *proto.MCRequest, cache *cache.Cache) *proto.MCResponse { cache.Set(req.Key, req.Value, time.Duration(req.Expires)*time.Second) res := proto.NewResStatus(req.Opcode, proto.SUCCESS) return res }