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());
        }