public static RedisIsMasterDownInfo Parse(RedisRawObject rawObject) { var result = new RedisIsMasterDownInfo(); if (!ReferenceEquals(rawObject, null) && rawObject.Type == RedisRawObjectType.Array) { var items = rawObject.Items; if (items != null) { var count = items.Count; if (count > 0) { var item = items[0]; if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.Integer) { var data = item.Data; if (data is long) { result.IsDown = (long)data == RedisConstants.One; } else if (data is int) { result.IsDown = (int)data == RedisConstants.One; } if (count > 1) { item = items[1]; if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.BulkString) { result.LeaderRunId = item.DataText ?? "*"; if (count > 2) { item = items[2]; if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.Integer) { data = item.Data; if (data is long) { result.LeaderEpoch = (long)data; } else if (data is int) { result.LeaderEpoch = (int)data; } } } } } } } } } return(result); }
internal RedisSentinelMasterInfo(RedisRawObject rawObject) : base(rawObject) { }
internal RedisSentinelSlaveInfo(RedisRawObject rawObject) : base(rawObject) { }
internal RedisSentinelClusterNodeInfo(RedisRawObject rawObject) : base(rawObject) { }
protected override void ParseInfo(RedisRawObject rawObject) { if (!ReferenceEquals(rawObject, null) && rawObject.Type == RedisRawObjectType.Array) { var list = rawObject.Items; if (list != null) { var count = list.Count; if (count > 1) { var item = list[1]; if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.BulkString) { IPAddress = item.DataText; } if (count > 2) { item = list[2]; if (!ReferenceEquals(item, null)) { if (item.Type == RedisRawObjectType.Integer) { var data = item.Data; if (data is long) { Port = (int)(long)data; } else if (data is int) { Port = (int)data; } } else if (item.Type == RedisRawObjectType.BulkString) { var data = item.DataText; if (!string.IsNullOrEmpty(data)) { long l; if (long.TryParse(data, out l)) { Port = (int)l; } } } } if (count > 3) { item = list[3]; if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.BulkString) { State = item.DataText; } if (count > 4) { item = list[4]; if (!ReferenceEquals(item, null)) { if (item.Type == RedisRawObjectType.Integer) { var data = item.Data; if (data is long) { DataReceived = (long)data; } else if (data is int) { DataReceived = (int)data; } } else if (item.Type == RedisRawObjectType.BulkString) { var data = item.DataText; if (!string.IsNullOrEmpty(data)) { long l; if (long.TryParse(data, out l)) { DataReceived = l; } } } } } } } } } } }