static Task PublishFromRedisToMemoryGroup(RedisValue value, IGroup group) { byte[] buffer = value; var reader = new MessagePackReader(buffer); var len1 = reader.ReadArrayHeader(); if (len1 == 3) { var isExcept = reader.ReadBoolean(); if (isExcept) { var excludes = NativeGuidArrayFormatter.Deserialize(ref reader); var offset = (int)reader.Consumed; return(group.WriteExceptRawAsync(new ArraySegment <byte>(buffer, offset, buffer.Length - offset), excludes, fireAndForget: false)); } else { var includes = NativeGuidArrayFormatter.Deserialize(ref reader); var offset = (int)reader.Consumed; return(group.WriteToRawAsync(new ArraySegment <byte>(buffer, offset, buffer.Length - offset), includes, fireAndForget: false)); } } return(Task.CompletedTask); }
static Task PublishFromRedisToMemoryGroup(RedisValue value, IGroup group) { byte[] buffer = value; var offset = 0; int readSize; var len1 = MessagePackBinary.ReadArrayHeader(buffer, offset, out readSize); offset += readSize; if (len1 == 2) { var excludes = NativeGuidArrayFormatter.Deserialize(buffer, offset, out readSize); offset += readSize; return(group.WriteRawAsync(new ArraySegment <byte>(buffer, offset, buffer.Length - offset), excludes, fireAndForget: false)); } return(Task.CompletedTask); }