Example #1
0
        public override void ReadFrom(PooledSocket socket)
        {
            var replies = new List<RedisValue>();
            if (Transactional)
            {
                _multi.ReadFrom(socket);  // OK

                for (int i = 0; i < _commands.Count; i++)
                {
                    // read "QUEUED"
                    var status = socket.ExpectSingleLineReply();
                }
                // The result is a multi-bulk, so
                // consume the count of returned items
                var count = socket.ExpectMultiBulkCount();
                if (count != _commands.Count)
                    throw new RedisClientException(
                        String.Format("Invalid number of bulk responses. Expected {0}, Got {1}", _commands.Count, count));
            }

            foreach (var command in _commands)
            {
                command.ReadFrom(socket);
                replies.Add(command.Value);
            }
            this.Value = new RedisValue(){Type = RedisValueType.MultiBulk, MultiBulkValues =replies.ToArray()};   
        }
Example #2
0
        public override void ReadFrom(PooledSocket socket)
        {
            socket.ExpectSingleLineReply(); // OK - matching Multi

            for (int i = 0; i < _commands.Count; i++)
            {
                // read "QUEUED"
                var status = socket.ExpectSingleLineReply();
            }
            // The result is a multi-bulk, so
            // consume the count of returned items
            var count = socket.ExpectMultiBulkCount();
            if (count != _commands.Count)
                throw new RedisClientException(
                    String.Format("Invalid number of bulk responses. Expected {0}, Got {1}", _commands.Count, count));

            foreach (var command in _commands)
            {
                command.ReadFrom(socket);
            }
        }