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 RiakResult Read(IRiakCommand command)
        {
            bool done = false;

            do
            {
                MessageCode expectedCode = command.ExpectedCode;
                Type        expectedType = MessageCodeTypeMapBuilder.GetTypeFor(expectedCode);

                int size = DoRead(expectedCode, expectedType);

                RpbResp response = DeserializeInstance(expectedType, size);
                command.OnSuccess(response);

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

            return(RiakResult.Success());
        }
        public RiakResult Execute(IRiakCommand command)
        {
            RiakResult executeResult = DoExecute(() => socket.Write(command));

            if (executeResult.IsSuccess)
            {
                executeResult = DoExecute(() => socket.Read(command));
            }

            return(executeResult);
        }
        public RiakResult Read(IRiakCommand command)
        {
            MessageCode expectedCode = command.ExpectedCode;
            Type        expectedType = MessageCodeTypeMapBuilder.GetTypeFor(expectedCode);

            int size = DoRead(expectedCode, expectedType);

            RpbResp response = DeserializeInstance(expectedType, size);

            command.OnSuccess(response);

            return(RiakResult.Success());
        }
        public RiakResult Write(IRiakCommand command)
        {
            RiakReq request = command.ConstructRequest(useTtb);

            if (request.IsMessageCodeOnly)
            {
                Write(request.MessageCode);
                return(RiakResult.Success());
            }
            else
            {
                return(DoWrite(s => request.WriteTo(s), request.MessageCode));
            }
        }
Exemple #6
0
        public RiakResult Write(IRiakCommand command)
        {
            RpbReq request = command.ConstructPbRequest();

            if (request.IsMessageCodeOnly)
            {
                Write(request.MessageCode);
                return(RiakResult.Success());
            }
            else
            {
                return(DoWrite(s => Serializer.Serialize(s, request), request.GetType()));
            }
        }
Exemple #7
0
 public E(IRiakClient client, IRiakCommand command)
 {
     _client  = client;
     _command = command;
 }
Exemple #8
0
 public Task <RiakResult> ExecuteAsync(IRiakCommand command)
 {
     return(new E(Client, command).ExecuteAsync());
 }
Exemple #9
0
 public RiakResult Execute(IRiakCommand command)
 {
     return(new E(Client, command).Execute());
 }
 /// <inheritdoc/>
 public Task <RiakResult> Execute(IRiakCommand command)
 {
     return(Task.Factory.StartNew(() => client.Execute(command)));
 }