package com.networknt.zookeeper.client;
import org.I0Itec.zkclient.IZkChildListener;
import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.IZkStateListener;
import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.exception.ZkException;
import org.I0Itec.zkclient.exception.ZkInterruptedException;
import java.util.List;
/**
* Created by stevehu on 2017-01-18.
*/
public class ZooKeeperClientImpl implements ZooKeeperClient {
private ZkClient zkClient;
private String zkServers;
private int sessionTimeout;
private int connectionTimeout;
public ZooKeeperClientImpl(String zkServers, int sessionTimeout, int connectionTimeout) {
zkClient = new ZkClient(zkServers, sessionTimeout, connectionTimeout);
}
public String getZkServers() {
return zkServers;
}
public void setZkServers(String zkServers) {
this.zkServers = zkServers;
}
public int getSessionTimeout() {
return sessionTimeout;
}
public void setSessionTimeout(int sessionTimeout) {
this.sessionTimeout = sessionTimeout;
}
public int getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(int connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
@Override
public void subscribeStateChanges(IZkStateListener listener) {
zkClient.subscribeStateChanges(listener);
}
@Override
public List<String> subscribeChildChanges(String path, IZkChildListener listener) {
return zkClient.subscribeChildChanges(path, listener);
}
@Override
public void unsubscribeChildChanges(String path, IZkChildListener childListener) {
zkClient.unsubscribeChildChanges(path, childListener);
}
@Override
public void subscribeDataChanges(String path, IZkDataListener listener) {
zkClient.subscribeDataChanges(path, listener);
}
@Override
public void unsubscribeDataChanges(String path, IZkDataListener dataListener) {
zkClient.unsubscribeDataChanges(path, dataListener);
}
@Override
public boolean exists(String path) {
return zkClient.exists(path);
}
@Override
public List<String> getChildren(String path) {
return zkClient.getChildren(path);
}
@Override
@SuppressWarnings("TypeParameterUnusedInFormals")
public <T> T readData(String path) {
return zkClient.readData(path);
}
@Override
@SuppressWarnings("TypeParameterUnusedInFormals")
public <T> T readData(String path, boolean returnNullIfPathNotExists) {
return zkClient.readData(path, returnNullIfPathNotExists);
}
@Override
public void writeData(String path, Object object) {
zkClient.writeData(path, object);
}
@Override
public void createPersistent(String path, boolean createParents) throws ZkInterruptedException, IllegalArgumentException, ZkException, RuntimeException {
zkClient.createPersistent(path, createParents);
}
@Override
public void createEphemeral(String path, Object data) throws ZkInterruptedException, IllegalArgumentException, ZkException, RuntimeException {
zkClient.createEphemeral(path, data);
}
@Override
public boolean delete(String path) {
return zkClient.delete(path);
}
}