internal RedisChannel AsRedisChannel(byte[] channelPrefix, RedisChannel.PatternMode mode) { switch (Type) { case ResultType.SimpleString: case ResultType.BulkString: if (channelPrefix == null) { return(new RedisChannel(GetBlob(), mode)); } if (StartsWith(channelPrefix)) { byte[] copy = Payload.Slice(channelPrefix.Length).ToArray(); return(new RedisChannel(copy, mode)); } return(default(RedisChannel)); default: throw new InvalidCastException("Cannot convert to RedisChannel: " + Type); } }
internal RedisChannel AsRedisChannel(byte[] channelPrefix, RedisChannel.PatternMode mode) { switch (Type) { case ResultType.SimpleString: case ResultType.BulkString: if (channelPrefix == null) { return(new RedisChannel(GetBlob(), mode)); } if (AssertStarts(channelPrefix)) { var src = (byte[])arr; byte[] copy = new byte[count - channelPrefix.Length]; Buffer.BlockCopy(src, offset + channelPrefix.Length, copy, 0, copy.Length); return(new RedisChannel(copy, mode)); } return(default(RedisChannel)); default: throw new InvalidCastException("Cannot convert to RedisChannel: " + Type); } }
public RedisSubKey(string key, RedisChannel.PatternMode patternMode) { Key = key; PatternMode = patternMode; }
public RedisChannel GetChannel(int index, RedisChannel.PatternMode mode) => _inner[index].AsRedisChannel(null, mode);