public object[] Exec() { RedisObjects command = RedisCommand.Exec(); Active = false; _activity.Dispose(); return(_connection.Call(ReadTransaction, command.Command, command.Arguments)); }
public Task <object[]> ExecAsync() { RedisObjects cmd = RedisCommand.Exec(); Active = false; _activity.Dispose(); return(_connection.CallAsync(ReadTransaction, cmd.Command, cmd.Arguments)); }
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); }