Example #1
0
        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)
 {
 }
Example #5
0
        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;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }