Example #1
0
        public object[] Exec()
        {
            RedisObjects command = RedisCommand.Exec();

            Active = false;
            _activity.Dispose();
            return(_connection.Call(ReadTransaction, command.Command, command.Arguments));
        }
Example #2
0
        public Task <object[]> ExecAsync()
        {
            RedisObjects cmd = RedisCommand.Exec();

            Active = false;
            _activity.Dispose();
            return(_connection.CallAsync(ReadTransaction, cmd.Command, cmd.Arguments));
        }
Example #3
0
        object[] ReadTransaction(Stream input)
        {
            if (!_captureResults)
            {
                RedisObjects command = RedisCommand.Exec();
                command.Parser(input);
                return(null);
            }

            RedisReader.ExpectType(input, RedisMessage.MultiBulk);
            long count = RedisReader.ReadInt(input, false);

            if (count == -1)
            {
                return(null);
            }

            object[] output = new object[_parsers.Count];
            for (int i = 0; i < output.Length; i++)
            {
                output[i] = _connection.Read(_parsers.Dequeue());
            }
            return(output);
        }