Rabbit.Zookeeper.Implementation.NodeEntry.OnChildrenChangeHandle(org.apache.zookeeper.WatchedEvent)

Here are the examples of the csharp api class Rabbit.Zookeeper.Implementation.NodeEntry.OnChildrenChangeHandle(org.apache.zookeeper.WatchedEvent) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

1. Example

Project: zookeeper-client
Source File: NodeEntry.cs
private async Task OnStatusChangeHandle(WatchedEvent watchedEvent, bool isFirstConnection)
        {
            //?????zk?????
            if (isFirstConnection)
                return;

            //??????
            await RestoreEphemeral();

            if (HasDataChangeHandler)
                await OnDataChangeHandle(watchedEvent);
            if (HasChildrenChangeHandler)
                await OnChildrenChangeHandle(watchedEvent);
        }

2. Example

Project: zookeeper-client
Source File: NodeEntry.cs
internal async Task OnChange(WatchedEvent watchedEvent, bool isFirstConnection)
        {
            //?????????????????????null?
            var path = watchedEvent.getPath();
            //???zk??????
            var stateChanged = path == null;

            //?????????????????
            if (stateChanged)
            {
                await OnStatusChangeHandle(watchedEvent, isFirstConnection);
            }
            else if (path == Path) //???????????
            {
                var eventType = watchedEvent.get_Type();

                //????????
                var dataChanged = new[]
                {
                    Watcher.Event.EventType.NodeCreated,
                    Watcher.Event.EventType.NodeDataChanged,
                    Watcher.Event.EventType.NodeDeleted
                }.Contains(eventType);

                if (dataChanged)
                {
                    //?????????????????????????????zk?????????????
                    if (eventType == Watcher.Event.EventType.NodeCreated && HasChildrenChangeHandler)
                        await _client.RetryUntilConnected(() => GetChildrenAsync(true));

                    //????????
                    await OnDataChangeHandle(watchedEvent);
                }
                else
                {
                    //?????????
                    await OnChildrenChangeHandle(watchedEvent);
                }
            }
        }