in src/dubbo/registry/zookeeper/kazoo_transport.py [0:0]
def __call__(self, data: bytes, stat: ZnodeStat, event: WatchedEvent):
"""
Handle data changes and notify the listener.
This method is called with the current data, stat, and event of the watched Znode,
processes the event type, and notifies all registered listeners.
:param data: The current data of the Znode.
:type data: bytes
:param stat: The status of the Znode.
:type stat: ZnodeStat
:param event: The event that triggered the callback.
:type event: WatchedEvent
"""
with self._lock:
if event is None or len(self._listeners) == 0:
return
event_type = None
if event.type == EventType.NONE:
event_type = DataListener.EventType.NONE
elif event.type == EventType.CREATED:
event_type = DataListener.EventType.CREATED
elif event.type == EventType.DELETED:
event_type = DataListener.EventType.DELETED
elif event.type == EventType.CHANGED:
event_type = DataListener.EventType.CHANGED
elif event.type == EventType.CHILD:
event_type = DataListener.EventType.CHILD
# Notify all listeners
for listener in self._listeners:
listener.data_changed(self._path, data, event_type)