示例#1
0
        public static List <string> GetSortedChildren(IZooKeeper client, string basePath, string lockName,
                                                      ILockInternalsSorter sorter)
        {
            var children = client.GetChildren(basePath, false);

            return(GetSortedChildren(lockName, sorter, children));
        }
示例#2
0
        public static IEnumerable <string> GetParticipantNodes(IZooKeeper client, string basePath, string lockName,
                                                               ILockInternalsSorter sorter)
        {
            var names       = GetSortedChildren(client, basePath, lockName, sorter);
            var transformed = names.Select(x => ZKPaths.MakePath(basePath, x));

            return(transformed);
        }
示例#3
0
        public async Task <List <string> > GetSortedChildren(string lockName, ILockInternalsSorter sorter)
        {
            var children = await _zkClient.getChildrenAsync(_basePath);

            children.Children.Sort((x, y) =>
            {
                return(sorter.FixForSorting(x, lockName)
                       .CompareTo(sorter.FixForSorting(y, lockName)));
            });

            return(children.Children);
        }
示例#4
0
 public static List <String> GetSortedChildren(string lockName, ILockInternalsSorter sorter, IEnumerable <string> children)
 {
     return(new List <string>(children.OrderBy(x => sorter.FixForSorting(x, lockName))));
 }