コード例 #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);
        }
コード例 #2
0
        public static RedisIsMasterDownInfo Parse(RedisArray array)
        {
            var result = new RedisIsMasterDownInfo();

            if (!ReferenceEquals(array, null))
            {
                var items = array.Value;
                if (items != null)
                {
                    var count = items.Count;
                    if (count > 0)
                    {
                        var item = items[0];
                        if (!ReferenceEquals(item, null) && item.Type == RedisResultType.Integer)
                        {
                            result.IsDown = ((RedisInteger)item).Value == RedisConstants.One;

                            if (count > 1)
                            {
                                item = items[1];
                                if (!ReferenceEquals(item, null) && item.Type == RedisResultType.Bytes)
                                {
                                    result.LeaderRunId = ((RedisBytes)item).Value.ToUTF8String() ?? "*";

                                    if (count > 2)
                                    {
                                        item = items[2];
                                        if (!ReferenceEquals(item, null) && item.Type == RedisResultType.Integer)
                                        {
                                            result.LeaderEpoch = ((RedisInteger)item).Value;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(result);
        }