protected T2 Call <T1, T2>(CommandPacket cmd, Func <RedisResult <T1>, T2> parse) { _redisSocket.Write(cmd); var result = cmd.Read <T1>(); return(parse(result)); }
protected TValue Call <TValue>(CommandPacket cmd, Func <RedisResult, TValue> parse) { _redisSocket.Write(cmd); var result = cmd.Read <string>(); return(parse(result)); }
public override TValue AdapaterCall <TReadTextOrStream, TValue>(CommandPacket cmd, Func <RedisResult, TValue> parse) { _redisSocket.Write(cmd); var rt = cmd.Read <TReadTextOrStream>(); rt.IsErrorThrow = TopOwner._isThrowRedisSimpleError; return(parse(rt)); }
object SelfCall(CommandPacket cmd) { return(TopOwner.LogCall(cmd, () => { _redisSocket.Write(cmd); return cmd.Read <string>().ThrowOrValue(); })); }
object SelfCall(CommandPacket cmd) { return(_cli.LogCall(cmd, () => { _redisSocket.Write(cmd); return cmd.Read <object>().ThrowOrValue(); })); }
public override T2 AdapaterCall <T1, T2>(CommandPacket cmd, Func <RedisResult <T1>, T2> parse) { return(_cli.LogCall(cmd, () => { _redisSocket.Write(cmd); var rt = cmd.Read <T1>(); rt.IsErrorThrow = _cli._isThrowRedisSimpleError; return parse(rt); })); }
public override TValue AdapaterCall <TReadTextOrStream, TValue>(CommandPacket cmd, Func <RedisResult, TValue> parse) { return(TopOwner.LogCall(cmd, () => { using (var rds = GetRedisSocket(cmd)) { rds.Write(cmd); var rt = cmd.Read <TReadTextOrStream>(); rt.IsErrorThrow = TopOwner._isThrowRedisSimpleError; return parse(rt); } })); }
public override TValue AdapaterCall <TReadTextOrStream, TValue>(CommandPacket cmd, Func <RedisResult, TValue> parse) { TryMulti(); return(TopOwner.LogCall(cmd, () => { _redisSocket.Write(cmd); cmd.Read <TReadTextOrStream>().ThrowOrValue <TValue>(); cmd._readed = false; //exec 还需要再读一次 _commands.Add(new TransactionCommand { Command = cmd, Parse = obj => parse(new RedisResult(obj, true, RedisMessageType.SimpleString) { Encoding = _redisSocket.Encoding }) }); return default(TValue); })); }
public override T2 AdapaterCall <T1, T2>(CommandPacket cmd, Func <RedisResult <T1>, T2> parse) { TryMulti(); return(_cli.LogCall(cmd, () => { _redisSocket.Write(cmd); cmd.Read <T1>().ThrowOrValue(); cmd._readed = false; //exec 还需要再读一次 _commands.Add(new TransactionCommand { Command = cmd, Parse = obj => parse(new RedisResult <T1>(obj.ConvertTo <T1>(), null, true, RedisMessageType.SimpleString) { Encoding = _redisSocket.Encoding }) }); return default(T2); })); }