public RiakResult Read(IRiakCommand command)
        {
            bool done = false;

            do
            {
                int    size   = ReadMessageSize(command.ExpectedCode);
                byte[] buffer = null;
                if (size > 0)
                {
                    buffer = ReceiveAll(new byte[size]);
                }

                RiakResp response = command.DecodeResponse(buffer);

                command.OnSuccess(response);

                var streamingResponse = response as IRpbStreamingResp;
                if (streamingResponse == null)
                {
                    done = true;
                }
                else
                {
                    done = streamingResponse.done;
                }
            }while (done == false);

            return(RiakResult.Success());
        }
Exemple #2
0
        public override void OnSuccess(RiakResp response)
        {
            if (response == null)
            {
                Response = new MapResponse();
            }
            else
            {
                DtFetchResp fetchResp = (DtFetchResp)response;
                if (fetchResp.type != DtFetchResp.DataType.MAP)
                {
                    throw new RiakException(
                              string.Format("Requested map, received {0}", fetchResp.type));
                }

                if (fetchResp.value == null)
                {
                    Response = new MapResponse();
                }
                else
                {
                    Response = new MapResponse(Options.Key, fetchResp.context, fetchResp.value.map_value);
                }
            }
        }
Exemple #3
0
        public override void OnSuccess(RiakResp response)
        {
            var             decoder = new ResponseDecoder((TsGetResp)response);
            DecodedResponse dr      = decoder.Decode();

            Response = new GetResponse(CommandOptions.Key, dr.Columns, dr.Rows);
        }
        public override void OnSuccess(RiakResp response)
        {
            if (response == null)
            {
                Response = new HllResponse();
            }
            else
            {
                DtFetchResp fetchResp = (DtFetchResp)response;
                if (fetchResp.type != DtFetchResp.DataType.HLL)
                {
                    throw new RiakException(
                              string.Format("Requested hyperloglog, received {0}", fetchResp.type));
                }

                if (fetchResp.value == null)
                {
                    Response = new HllResponse();
                }
                else
                {
                    Response = new HllResponse(Options.Key, fetchResp.value.hll_value);
                }
            }
        }
        public override void OnSuccess(RiakResp response)
        {
            if (response == null)
            {
                Response = new SetResponse();
            }
            else
            {
                DtFetchResp fetchResp = (DtFetchResp)response;
                if (fetchResp.type != DtFetchResp.DataType.SET)
                {
                    throw new RiakException(
                              string.Format("Requested set, received {0}", fetchResp.type));
                }

                if (fetchResp.value == null)
                {
                    Response = new SetResponse();
                }
                else
                {
                    Response = new SetResponse(
                        Options.Key,
                        fetchResp.context,
                        new HashSet <byte[]>(fetchResp.value.set_value));
                }
            }
        }
Exemple #6
0
 public override void OnSuccess(RiakResp response)
 {
     if (response == null)
     {
         Response = new Response(notFound: true);
     }
     else
     {
         Response = new Response(notFound: false);
     }
 }
Exemple #7
0
 public override void OnSuccess(RiakResp response)
 {
     if (response == null)
     {
         Response = default(TResponse);
     }
     else
     {
         Response = CreateResponse((DtUpdateResp)response);
     }
 }
Exemple #8
0
 public override void OnSuccess(RiakResp response)
 {
     if (response == null)
     {
         Response = new ServerInfoResponse();
     }
     else
     {
         RpbGetServerInfoResp resp = (RpbGetServerInfoResp)response;
         var info = new ServerInfo(new RiakString(resp.node), new RiakString(resp.server_version));
         Response = new ServerInfoResponse(info);
     }
 }
        protected RiakString GetKey(RiakString optskey, RiakResp response)
        {
            RiakString key = optskey;

            IRpbGeneratedKey krsp = response as IRpbGeneratedKey;

            if (krsp != null && krsp.HasKey)
            {
                key = new RiakString(krsp.key);
            }

            return(key);
        }
Exemple #10
0
 public override void OnSuccess(RiakResp response)
 {
     if (usingTtb)
     {
         var ttbresp = (TsTtbResp)response;
         using (var s = new OtpInputStream(ttbresp.Response))
         {
             s.ReadTupleHead();
             string atom = s.ReadAtom();
             if (atom.Equals(TsPutRespAtom) == false)
             {
                 throw new InvalidDataException(
                           string.Format("Expected {0}, got {1}", TsPutRespAtom, atom));
             }
         }
     }
     else
     {
         Response = new StoreResponse();
     }
 }
        public override void OnSuccess(RiakResp response)
        {
            if (response == null)
            {
                Response = new PreflistResponse();
            }
            else
            {
                RpbGetBucketKeyPreflistResp resp = (RpbGetBucketKeyPreflistResp)response;

                IEnumerable <PreflistItem> preflistItems = Enumerable.Empty <PreflistItem>();

                if (EnumerableUtil.NotNullOrEmpty(resp.preflist))
                {
                    preflistItems = resp.preflist.Select(i =>
                                                         new PreflistItem(RiakString.FromBytes(i.node), i.partition, i.primary));
                }

                Response = new PreflistResponse(Options.Key, preflistItems);
            }
        }
Exemple #12
0
        public override void OnSuccess(RiakResp response)
        {
            TsListKeysResp rsp = (TsListKeysResp)response;

            Response = new ListKeysResponse(rsp.keys.Select(tsr => new Row(tsr)));

            if (CommandOptions.Callback != null)
            {
                CommandOptions.Callback(Response);
            }
            else
            {
                rows.AddRange(Response.Value);
            }

            var streamingResponse = response as IRpbStreamingResp;

            if (streamingResponse != null && streamingResponse.done)
            {
                Response = new ListKeysResponse(rows);
            }
        }
Exemple #13
0
        public override void OnSuccess(RiakResp response)
        {
            DecodedResponse dr      = null;
            ResponseDecoder decoder = null;

            if (usingTtb)
            {
                var rsp = (TsTtbResp)response;
                decoder = new ResponseDecoder(rsp);
            }
            else
            {
                var rsp = (TsQueryResp)response;
                decoder = new ResponseDecoder(rsp);
            }

            dr = decoder.Decode();

            Response = new QueryResponse(CommandOptions.Query, dr.Columns, dr.Rows);

            if (CommandOptions.Callback != null)
            {
                CommandOptions.Callback(Response);
            }
            else
            {
                rows.AddRange(Response.Value);
            }

            var streamingResponse = response as IRpbStreamingResp;

            if (streamingResponse != null && streamingResponse.done)
            {
                Response = new QueryResponse(CommandOptions.Query, dr.Columns, rows);
            }
        }
Exemple #14
0
 public abstract void OnSuccess(RiakResp rpbResp);