in zookeeper-api/src/main/java/org/apache/helix/zookeeper/api/client/RealmAwareZkClient.java [151:328]
void subscribeStateChanges(
final org.apache.helix.zookeeper.zkclient.deprecated.IZkStateListener listener);
/**
* Unsubscribes state changes for a
* {@link org.apache.helix.zookeeper.zkclient.deprecated.IZkStateListener} listener.
* @deprecated
* This is deprecated. It is kept for backwards compatibility. Please use
* {@link #unsubscribeStateChanges(IZkStateListener)}.
* @param listener {@link org.apache.helix.zookeeper.zkclient.deprecated.IZkStateListener}
* listener
*/
@Deprecated
void unsubscribeStateChanges(
org.apache.helix.zookeeper.zkclient.deprecated.IZkStateListener listener);
void unsubscribeAll();
// data access
void createPersistent(String path);
void createPersistent(String path, boolean createParents);
void createPersistent(String path, boolean createParents, List<ACL> acl);
void createPersistent(String path, Object data);
void createPersistent(String path, Object data, List<ACL> acl);
void createPersistentWithTTL(String path, long ttl);
void createPersistentWithTTL(String path, boolean createParents, long ttl);
void createPersistentWithTTL(String path, boolean createParents, List<ACL> acl, long ttl);
void createPersistentWithTTL(String path, Object data, long ttl);
void createPersistentWithTTL(String path, Object data, List<ACL> acl, long ttl);
String createPersistentSequential(String path, Object data);
String createPersistentSequential(String path, Object data, List<ACL> acl);
String createPersistentSequentialWithTTL(String path, Object data, long ttl);
String createPersistentSequentialWithTTL(String path, Object data, List<ACL> acl, long ttl);
void createContainer(String path);
void createContainer(String path, boolean createParents);
void createContainer(String path, boolean createParents, List<ACL> acl);
void createContainer(String path, Object data);
void createContainer(String path, Object data, List<ACL> acl);
void createEphemeral(final String path);
void createEphemeral(final String path, final String sessionId);
void createEphemeral(final String path, final List<ACL> acl);
void createEphemeral(final String path, final List<ACL> acl, final String sessionId);
String create(final String path, Object data, final CreateMode mode);
String create(final String path, Object data, final CreateMode mode, long ttl);
String create(final String path, Object datat, final List<ACL> acl, final CreateMode mode);
String create(final String path, Object datat, final List<ACL> acl, final CreateMode mode,
long ttl);
void createEphemeral(final String path, final Object data);
void createEphemeral(final String path, final Object data, final String sessionId);
void createEphemeral(final String path, final Object data, final List<ACL> acl);
void createEphemeral(final String path, final Object data, final List<ACL> acl,
final String sessionId);
String createEphemeralSequential(final String path, final Object data);
String createEphemeralSequential(final String path, final Object data, final List<ACL> acl);
String createEphemeralSequential(final String path, final Object data, final String sessionId);
String createEphemeralSequential(final String path, final Object data, final List<ACL> acl,
final String sessionId);
List<String> getChildren(String path);
int countChildren(String path);
boolean exists(final String path);
Stat getStat(final String path);
boolean waitUntilExists(String path, TimeUnit timeUnit, long time);
void deleteRecursively(String path);
void deleteRecursivelyAtomic(String path);
void deleteRecursivelyAtomic(List<String> paths);
boolean delete(final String path);
boolean delete(final String path, final int expectedVersion);
<T extends Object> T readData(String path);
<T extends Object> T readData(String path, boolean returnNullIfPathNotExists);
<T extends Object> T readData(String path, Stat stat);
<T extends Object> T readData(final String path, final Stat stat, final boolean watch);
<T extends Object> T readDataAndStat(String path, Stat stat, boolean returnNullIfPathNotExists);
void writeData(String path, Object object);
<T extends Object> void updateDataSerialized(String path, DataUpdater<T> updater);
void writeData(final String path, Object datat, final int expectedVersion);
Stat writeDataReturnStat(final String path, Object datat, final int expectedVersion);
Stat writeDataGetStat(final String path, Object datat, final int expectedVersion);
void asyncCreate(final String path, Object datat, final CreateMode mode,
final ZkAsyncCallbacks.CreateCallbackHandler cb);
void asyncCreate(final String path, Object datat, final CreateMode mode, long ttl,
final ZkAsyncCallbacks.CreateCallbackHandler cb);
void asyncSetData(final String path, Object datat, final int version,
final ZkAsyncCallbacks.SetDataCallbackHandler cb);
void asyncGetData(final String path, final ZkAsyncCallbacks.GetDataCallbackHandler cb);
void asyncExists(final String path, final ZkAsyncCallbacks.ExistsCallbackHandler cb);
void asyncDelete(final String path, final ZkAsyncCallbacks.DeleteCallbackHandler cb);
void watchForData(final String path);
List<String> watchForChilds(final String path);
long getCreationTime(String path);
List<OpResult> multi(final Iterable<Op> ops);
// ZK state control
boolean waitUntilConnected(long time, TimeUnit timeUnit);
/**
* Waits for SyncConnected state and returns a valid session ID(non-zero). The implementation of
* this method should wait for SyncConnected state and ZK session to be established, and should
* guarantee the established session's ID is returned before keeper state changes.
*
* Please note: this default implementation may have race condition issue and return an unexpected
* session ID that is zero or another new session's ID. The default implementation is for backward
* compatibility purpose.
*
* @param timeout Max waiting time for connecting to ZK server.
* @param timeUnit Time unit for the timeout.
* @return A valid ZK session ID which is non-zero.
*/
default long waitForEstablishedSession(long timeout, TimeUnit timeUnit) {
if (!waitUntilConnected(timeout, timeUnit)) {
throw new ZkTimeoutException(
"Failed to get established session because connecting to ZK server has timed out in "
+ timeout + " " + timeUnit);
}
return getSessionId();
}