You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2014/05/29 22:54:23 UTC

[2/7] some more leader methods - start of path children cache

http://git-wip-us.apache.org/repos/asf/curator/blob/41ac42bb/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorService.java
----------------------------------------------------------------------
diff --git a/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorService.java b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorService.java
index 38a29cc..aab8a8d 100644
--- a/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorService.java
+++ b/curator-x-rpc/src/test/java/org/apache/curator/generated/CuratorService.java
@@ -52,12 +52,18 @@ public class CuratorService {
 
     public ByteBuffer getData(CuratorProjection projection, GetDataSpec spec) throws org.apache.thrift.TException;
 
+    public List<Participant> getLeaderParticipants(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException;
+
+    public boolean isLeader(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException;
+
     public CuratorProjection newCuratorProjection(String connectionName) throws org.apache.thrift.TException;
 
     public Stat setData(CuratorProjection projection, SetDataSpec spec) throws org.apache.thrift.TException;
 
     public LeaderResult startLeaderSelector(CuratorProjection projection, String path, String participantId, int waitForLeadershipMs) throws org.apache.thrift.TException;
 
+    public PathChildrenCacheProjection startPathChildrenCache(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode) throws org.apache.thrift.TException;
+
   }
 
   public interface AsyncIface {
@@ -78,12 +84,18 @@ public class CuratorService {
 
     public void getData(CuratorProjection projection, GetDataSpec spec, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getLeaderParticipants(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void isLeader(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void newCuratorProjection(String connectionName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void setData(CuratorProjection projection, SetDataSpec spec, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void startLeaderSelector(CuratorProjection projection, String path, String participantId, int waitForLeadershipMs, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void startPathChildrenCache(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
   }
 
   public static class Client extends org.apache.thrift.TServiceClient implements Iface {
@@ -292,6 +304,54 @@ public class CuratorService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getData failed: unknown result");
     }
 
+    public List<Participant> getLeaderParticipants(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException
+    {
+      send_getLeaderParticipants(projection, leaderProjection);
+      return recv_getLeaderParticipants();
+    }
+
+    public void send_getLeaderParticipants(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException
+    {
+      getLeaderParticipants_args args = new getLeaderParticipants_args();
+      args.setProjection(projection);
+      args.setLeaderProjection(leaderProjection);
+      sendBase("getLeaderParticipants", args);
+    }
+
+    public List<Participant> recv_getLeaderParticipants() throws org.apache.thrift.TException
+    {
+      getLeaderParticipants_result result = new getLeaderParticipants_result();
+      receiveBase(result, "getLeaderParticipants");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getLeaderParticipants failed: unknown result");
+    }
+
+    public boolean isLeader(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException
+    {
+      send_isLeader(projection, leaderProjection);
+      return recv_isLeader();
+    }
+
+    public void send_isLeader(CuratorProjection projection, LeaderProjection leaderProjection) throws org.apache.thrift.TException
+    {
+      isLeader_args args = new isLeader_args();
+      args.setProjection(projection);
+      args.setLeaderProjection(leaderProjection);
+      sendBase("isLeader", args);
+    }
+
+    public boolean recv_isLeader() throws org.apache.thrift.TException
+    {
+      isLeader_result result = new isLeader_result();
+      receiveBase(result, "isLeader");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isLeader failed: unknown result");
+    }
+
     public CuratorProjection newCuratorProjection(String connectionName) throws org.apache.thrift.TException
     {
       send_newCuratorProjection(connectionName);
@@ -365,6 +425,33 @@ public class CuratorService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startLeaderSelector failed: unknown result");
     }
 
+    public PathChildrenCacheProjection startPathChildrenCache(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode) throws org.apache.thrift.TException
+    {
+      send_startPathChildrenCache(projection, path, cacheData, dataIsCompressed, startMode);
+      return recv_startPathChildrenCache();
+    }
+
+    public void send_startPathChildrenCache(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode) throws org.apache.thrift.TException
+    {
+      startPathChildrenCache_args args = new startPathChildrenCache_args();
+      args.setProjection(projection);
+      args.setPath(path);
+      args.setCacheData(cacheData);
+      args.setDataIsCompressed(dataIsCompressed);
+      args.setStartMode(startMode);
+      sendBase("startPathChildrenCache", args);
+    }
+
+    public PathChildrenCacheProjection recv_startPathChildrenCache() throws org.apache.thrift.TException
+    {
+      startPathChildrenCache_result result = new startPathChildrenCache_result();
+      receiveBase(result, "startPathChildrenCache");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "startPathChildrenCache failed: unknown result");
+    }
+
   }
   public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
     public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -663,6 +750,76 @@ public class CuratorService {
       }
     }
 
+    public void getLeaderParticipants(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getLeaderParticipants_call method_call = new getLeaderParticipants_call(projection, leaderProjection, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getLeaderParticipants_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private CuratorProjection projection;
+      private LeaderProjection leaderProjection;
+      public getLeaderParticipants_call(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.projection = projection;
+        this.leaderProjection = leaderProjection;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getLeaderParticipants", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getLeaderParticipants_args args = new getLeaderParticipants_args();
+        args.setProjection(projection);
+        args.setLeaderProjection(leaderProjection);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<Participant> getResult() throws org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getLeaderParticipants();
+      }
+    }
+
+    public void isLeader(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      isLeader_call method_call = new isLeader_call(projection, leaderProjection, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class isLeader_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private CuratorProjection projection;
+      private LeaderProjection leaderProjection;
+      public isLeader_call(CuratorProjection projection, LeaderProjection leaderProjection, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.projection = projection;
+        this.leaderProjection = leaderProjection;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isLeader", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        isLeader_args args = new isLeader_args();
+        args.setProjection(projection);
+        args.setLeaderProjection(leaderProjection);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_isLeader();
+      }
+    }
+
     public void newCuratorProjection(String connectionName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       newCuratorProjection_call method_call = new newCuratorProjection_call(connectionName, resultHandler, this, ___protocolFactory, ___transport);
@@ -771,6 +928,50 @@ public class CuratorService {
       }
     }
 
+    public void startPathChildrenCache(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      startPathChildrenCache_call method_call = new startPathChildrenCache_call(projection, path, cacheData, dataIsCompressed, startMode, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class startPathChildrenCache_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private CuratorProjection projection;
+      private String path;
+      private boolean cacheData;
+      private boolean dataIsCompressed;
+      private PathChildrenCacheStartMode startMode;
+      public startPathChildrenCache_call(CuratorProjection projection, String path, boolean cacheData, boolean dataIsCompressed, PathChildrenCacheStartMode startMode, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.projection = projection;
+        this.path = path;
+        this.cacheData = cacheData;
+        this.dataIsCompressed = dataIsCompressed;
+        this.startMode = startMode;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("startPathChildrenCache", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        startPathChildrenCache_args args = new startPathChildrenCache_args();
+        args.setProjection(projection);
+        args.setPath(path);
+        args.setCacheData(cacheData);
+        args.setDataIsCompressed(dataIsCompressed);
+        args.setStartMode(startMode);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public PathChildrenCacheProjection getResult() throws org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_startPathChildrenCache();
+      }
+    }
+
   }
 
   public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
@@ -792,9 +993,12 @@ public class CuratorService {
       processMap.put("exists", new exists());
       processMap.put("getChildren", new getChildren());
       processMap.put("getData", new getData());
+      processMap.put("getLeaderParticipants", new getLeaderParticipants());
+      processMap.put("isLeader", new isLeader());
       processMap.put("newCuratorProjection", new newCuratorProjection());
       processMap.put("setData", new setData());
       processMap.put("startLeaderSelector", new startLeaderSelector());
+      processMap.put("startPathChildrenCache", new startPathChildrenCache());
       return processMap;
     }
 
@@ -959,6 +1163,47 @@ public class CuratorService {
       }
     }
 
+    public static class getLeaderParticipants<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getLeaderParticipants_args> {
+      public getLeaderParticipants() {
+        super("getLeaderParticipants");
+      }
+
+      public getLeaderParticipants_args getEmptyArgsInstance() {
+        return new getLeaderParticipants_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getLeaderParticipants_result getResult(I iface, getLeaderParticipants_args args) throws org.apache.thrift.TException {
+        getLeaderParticipants_result result = new getLeaderParticipants_result();
+        result.success = iface.getLeaderParticipants(args.projection, args.leaderProjection);
+        return result;
+      }
+    }
+
+    public static class isLeader<I extends Iface> extends org.apache.thrift.ProcessFunction<I, isLeader_args> {
+      public isLeader() {
+        super("isLeader");
+      }
+
+      public isLeader_args getEmptyArgsInstance() {
+        return new isLeader_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public isLeader_result getResult(I iface, isLeader_args args) throws org.apache.thrift.TException {
+        isLeader_result result = new isLeader_result();
+        result.success = iface.isLeader(args.projection, args.leaderProjection);
+        result.setSuccessIsSet(true);
+        return result;
+      }
+    }
+
     public static class newCuratorProjection<I extends Iface> extends org.apache.thrift.ProcessFunction<I, newCuratorProjection_args> {
       public newCuratorProjection() {
         super("newCuratorProjection");
@@ -1019,6 +1264,26 @@ public class CuratorService {
       }
     }
 
+    public static class startPathChildrenCache<I extends Iface> extends org.apache.thrift.ProcessFunction<I, startPathChildrenCache_args> {
+      public startPathChildrenCache() {
+        super("startPathChildrenCache");
+      }
+
+      public startPathChildrenCache_args getEmptyArgsInstance() {
+        return new startPathChildrenCache_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public startPathChildrenCache_result getResult(I iface, startPathChildrenCache_args args) throws org.apache.thrift.TException {
+        startPathChildrenCache_result result = new startPathChildrenCache_result();
+        result.success = iface.startPathChildrenCache(args.projection, args.path, args.cacheData, args.dataIsCompressed, args.startMode);
+        return result;
+      }
+    }
+
   }
 
   public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
@@ -1040,9 +1305,12 @@ public class CuratorService {
       processMap.put("exists", new exists());
       processMap.put("getChildren", new getChildren());
       processMap.put("getData", new getData());
+      processMap.put("getLeaderParticipants", new getLeaderParticipants());
+      processMap.put("isLeader", new isLeader());
       processMap.put("newCuratorProjection", new newCuratorProjection());
       processMap.put("setData", new setData());
       processMap.put("startLeaderSelector", new startLeaderSelector());
+      processMap.put("startPathChildrenCache", new startPathChildrenCache());
       return processMap;
     }
 
@@ -1453,6 +1721,109 @@ public class CuratorService {
       }
     }
 
+    public static class getLeaderParticipants<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLeaderParticipants_args, List<Participant>> {
+      public getLeaderParticipants() {
+        super("getLeaderParticipants");
+      }
+
+      public getLeaderParticipants_args getEmptyArgsInstance() {
+        return new getLeaderParticipants_args();
+      }
+
+      public AsyncMethodCallback<List<Participant>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<List<Participant>>() { 
+          public void onComplete(List<Participant> o) {
+            getLeaderParticipants_result result = new getLeaderParticipants_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            getLeaderParticipants_result result = new getLeaderParticipants_result();
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getLeaderParticipants_args args, org.apache.thrift.async.AsyncMethodCallback<List<Participant>> resultHandler) throws TException {
+        iface.getLeaderParticipants(args.projection, args.leaderProjection,resultHandler);
+      }
+    }
+
+    public static class isLeader<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isLeader_args, Boolean> {
+      public isLeader() {
+        super("isLeader");
+      }
+
+      public isLeader_args getEmptyArgsInstance() {
+        return new isLeader_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            isLeader_result result = new isLeader_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            isLeader_result result = new isLeader_result();
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, isLeader_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.isLeader(args.projection, args.leaderProjection,resultHandler);
+      }
+    }
+
     public static class newCuratorProjection<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, newCuratorProjection_args, CuratorProjection> {
       public newCuratorProjection() {
         super("newCuratorProjection");
@@ -1606,20 +1977,71 @@ public class CuratorService {
       }
     }
 
-  }
-
-  public static class acquireLock_args implements org.apache.thrift.TBase<acquireLock_args, acquireLock_args._Fields>, java.io.Serializable, Cloneable, Comparable<acquireLock_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("acquireLock_args");
-
-    private static final org.apache.thrift.protocol.TField PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("projection", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField MAX_WAIT_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxWaitMs", org.apache.thrift.protocol.TType.I32, (short)3);
+    public static class startPathChildrenCache<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, startPathChildrenCache_args, PathChildrenCacheProjection> {
+      public startPathChildrenCache() {
+        super("startPathChildrenCache");
+      }
 
-    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-    static {
-      schemes.put(StandardScheme.class, new acquireLock_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new acquireLock_argsTupleSchemeFactory());
-    }
+      public startPathChildrenCache_args getEmptyArgsInstance() {
+        return new startPathChildrenCache_args();
+      }
+
+      public AsyncMethodCallback<PathChildrenCacheProjection> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<PathChildrenCacheProjection>() { 
+          public void onComplete(PathChildrenCacheProjection o) {
+            startPathChildrenCache_result result = new startPathChildrenCache_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            startPathChildrenCache_result result = new startPathChildrenCache_result();
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, startPathChildrenCache_args args, org.apache.thrift.async.AsyncMethodCallback<PathChildrenCacheProjection> resultHandler) throws TException {
+        iface.startPathChildrenCache(args.projection, args.path, args.cacheData, args.dataIsCompressed, args.startMode,resultHandler);
+      }
+    }
+
+  }
+
+  public static class acquireLock_args implements org.apache.thrift.TBase<acquireLock_args, acquireLock_args._Fields>, java.io.Serializable, Cloneable, Comparable<acquireLock_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("acquireLock_args");
+
+    private static final org.apache.thrift.protocol.TField PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("projection", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField MAX_WAIT_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxWaitMs", org.apache.thrift.protocol.TType.I32, (short)3);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new acquireLock_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new acquireLock_argsTupleSchemeFactory());
+    }
 
     public CuratorProjection projection; // required
     public String path; // required
@@ -7955,22 +8377,25 @@ public class CuratorService {
 
   }
 
-  public static class newCuratorProjection_args implements org.apache.thrift.TBase<newCuratorProjection_args, newCuratorProjection_args._Fields>, java.io.Serializable, Cloneable, Comparable<newCuratorProjection_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("newCuratorProjection_args");
+  public static class getLeaderParticipants_args implements org.apache.thrift.TBase<getLeaderParticipants_args, getLeaderParticipants_args._Fields>, java.io.Serializable, Cloneable, Comparable<getLeaderParticipants_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLeaderParticipants_args");
 
-    private static final org.apache.thrift.protocol.TField CONNECTION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("connectionName", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("projection", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField LEADER_PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("leaderProjection", org.apache.thrift.protocol.TType.STRUCT, (short)2);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new newCuratorProjection_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new newCuratorProjection_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getLeaderParticipants_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getLeaderParticipants_argsTupleSchemeFactory());
     }
 
-    public String connectionName; // required
+    public CuratorProjection projection; // required
+    public LeaderProjection leaderProjection; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      CONNECTION_NAME((short)1, "connectionName");
+      PROJECTION((short)1, "projection"),
+      LEADER_PROJECTION((short)2, "leaderProjection");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -7985,8 +8410,10 @@ public class CuratorService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // CONNECTION_NAME
-            return CONNECTION_NAME;
+          case 1: // PROJECTION
+            return PROJECTION;
+          case 2: // LEADER_PROJECTION
+            return LEADER_PROJECTION;
           default:
             return null;
         }
@@ -8030,71 +8457,111 @@ public class CuratorService {
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.CONNECTION_NAME, new org.apache.thrift.meta_data.FieldMetaData("connectionName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.PROJECTION, new org.apache.thrift.meta_data.FieldMetaData("projection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CuratorProjection.class)));
+      tmpMap.put(_Fields.LEADER_PROJECTION, new org.apache.thrift.meta_data.FieldMetaData("leaderProjection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LeaderProjection.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(newCuratorProjection_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLeaderParticipants_args.class, metaDataMap);
     }
 
-    public newCuratorProjection_args() {
+    public getLeaderParticipants_args() {
     }
 
-    public newCuratorProjection_args(
-      String connectionName)
+    public getLeaderParticipants_args(
+      CuratorProjection projection,
+      LeaderProjection leaderProjection)
     {
       this();
-      this.connectionName = connectionName;
+      this.projection = projection;
+      this.leaderProjection = leaderProjection;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public newCuratorProjection_args(newCuratorProjection_args other) {
-      if (other.isSetConnectionName()) {
-        this.connectionName = other.connectionName;
+    public getLeaderParticipants_args(getLeaderParticipants_args other) {
+      if (other.isSetProjection()) {
+        this.projection = new CuratorProjection(other.projection);
+      }
+      if (other.isSetLeaderProjection()) {
+        this.leaderProjection = new LeaderProjection(other.leaderProjection);
       }
     }
 
-    public newCuratorProjection_args deepCopy() {
-      return new newCuratorProjection_args(this);
+    public getLeaderParticipants_args deepCopy() {
+      return new getLeaderParticipants_args(this);
     }
 
     @Override
     public void clear() {
-      this.connectionName = null;
+      this.projection = null;
+      this.leaderProjection = null;
     }
 
-    public String getConnectionName() {
-      return this.connectionName;
+    public CuratorProjection getProjection() {
+      return this.projection;
     }
 
-    public newCuratorProjection_args setConnectionName(String connectionName) {
-      this.connectionName = connectionName;
+    public getLeaderParticipants_args setProjection(CuratorProjection projection) {
+      this.projection = projection;
       return this;
     }
 
-    public void unsetConnectionName() {
-      this.connectionName = null;
+    public void unsetProjection() {
+      this.projection = null;
     }
 
-    /** Returns true if field connectionName is set (has been assigned a value) and false otherwise */
-    public boolean isSetConnectionName() {
-      return this.connectionName != null;
+    /** Returns true if field projection is set (has been assigned a value) and false otherwise */
+    public boolean isSetProjection() {
+      return this.projection != null;
     }
 
-    public void setConnectionNameIsSet(boolean value) {
+    public void setProjectionIsSet(boolean value) {
       if (!value) {
-        this.connectionName = null;
+        this.projection = null;
+      }
+    }
+
+    public LeaderProjection getLeaderProjection() {
+      return this.leaderProjection;
+    }
+
+    public getLeaderParticipants_args setLeaderProjection(LeaderProjection leaderProjection) {
+      this.leaderProjection = leaderProjection;
+      return this;
+    }
+
+    public void unsetLeaderProjection() {
+      this.leaderProjection = null;
+    }
+
+    /** Returns true if field leaderProjection is set (has been assigned a value) and false otherwise */
+    public boolean isSetLeaderProjection() {
+      return this.leaderProjection != null;
+    }
+
+    public void setLeaderProjectionIsSet(boolean value) {
+      if (!value) {
+        this.leaderProjection = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case CONNECTION_NAME:
+      case PROJECTION:
         if (value == null) {
-          unsetConnectionName();
+          unsetProjection();
         } else {
-          setConnectionName((String)value);
+          setProjection((CuratorProjection)value);
+        }
+        break;
+
+      case LEADER_PROJECTION:
+        if (value == null) {
+          unsetLeaderProjection();
+        } else {
+          setLeaderProjection((LeaderProjection)value);
         }
         break;
 
@@ -8103,8 +8570,11 @@ public class CuratorService {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case CONNECTION_NAME:
-        return getConnectionName();
+      case PROJECTION:
+        return getProjection();
+
+      case LEADER_PROJECTION:
+        return getLeaderProjection();
 
       }
       throw new IllegalStateException();
@@ -8117,8 +8587,10 @@ public class CuratorService {
       }
 
       switch (field) {
-      case CONNECTION_NAME:
-        return isSetConnectionName();
+      case PROJECTION:
+        return isSetProjection();
+      case LEADER_PROJECTION:
+        return isSetLeaderProjection();
       }
       throw new IllegalStateException();
     }
@@ -8127,21 +8599,30 @@ public class CuratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof newCuratorProjection_args)
-        return this.equals((newCuratorProjection_args)that);
+      if (that instanceof getLeaderParticipants_args)
+        return this.equals((getLeaderParticipants_args)that);
       return false;
     }
 
-    public boolean equals(newCuratorProjection_args that) {
+    public boolean equals(getLeaderParticipants_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_connectionName = true && this.isSetConnectionName();
-      boolean that_present_connectionName = true && that.isSetConnectionName();
-      if (this_present_connectionName || that_present_connectionName) {
-        if (!(this_present_connectionName && that_present_connectionName))
+      boolean this_present_projection = true && this.isSetProjection();
+      boolean that_present_projection = true && that.isSetProjection();
+      if (this_present_projection || that_present_projection) {
+        if (!(this_present_projection && that_present_projection))
           return false;
-        if (!this.connectionName.equals(that.connectionName))
+        if (!this.projection.equals(that.projection))
+          return false;
+      }
+
+      boolean this_present_leaderProjection = true && this.isSetLeaderProjection();
+      boolean that_present_leaderProjection = true && that.isSetLeaderProjection();
+      if (this_present_leaderProjection || that_present_leaderProjection) {
+        if (!(this_present_leaderProjection && that_present_leaderProjection))
+          return false;
+        if (!this.leaderProjection.equals(that.leaderProjection))
           return false;
       }
 
@@ -8154,19 +8635,29 @@ public class CuratorService {
     }
 
     @Override
-    public int compareTo(newCuratorProjection_args other) {
+    public int compareTo(getLeaderParticipants_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetConnectionName()).compareTo(other.isSetConnectionName());
+      lastComparison = Boolean.valueOf(isSetProjection()).compareTo(other.isSetProjection());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetConnectionName()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.connectionName, other.connectionName);
+      if (isSetProjection()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projection, other.projection);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetLeaderProjection()).compareTo(other.isSetLeaderProjection());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetLeaderProjection()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.leaderProjection, other.leaderProjection);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -8188,14 +8679,22 @@ public class CuratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("newCuratorProjection_args(");
+      StringBuilder sb = new StringBuilder("getLeaderParticipants_args(");
       boolean first = true;
 
-      sb.append("connectionName:");
-      if (this.connectionName == null) {
+      sb.append("projection:");
+      if (this.projection == null) {
         sb.append("null");
       } else {
-        sb.append(this.connectionName);
+        sb.append(this.projection);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("leaderProjection:");
+      if (this.leaderProjection == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.leaderProjection);
       }
       first = false;
       sb.append(")");
@@ -8205,6 +8704,12 @@ public class CuratorService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (projection != null) {
+        projection.validate();
+      }
+      if (leaderProjection != null) {
+        leaderProjection.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -8223,15 +8728,15 @@ public class CuratorService {
       }
     }
 
-    private static class newCuratorProjection_argsStandardSchemeFactory implements SchemeFactory {
-      public newCuratorProjection_argsStandardScheme getScheme() {
-        return new newCuratorProjection_argsStandardScheme();
+    private static class getLeaderParticipants_argsStandardSchemeFactory implements SchemeFactory {
+      public getLeaderParticipants_argsStandardScheme getScheme() {
+        return new getLeaderParticipants_argsStandardScheme();
       }
     }
 
-    private static class newCuratorProjection_argsStandardScheme extends StandardScheme<newCuratorProjection_args> {
+    private static class getLeaderParticipants_argsStandardScheme extends StandardScheme<getLeaderParticipants_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, newCuratorProjection_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getLeaderParticipants_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -8241,10 +8746,20 @@ public class CuratorService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // CONNECTION_NAME
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.connectionName = iprot.readString();
-                struct.setConnectionNameIsSet(true);
+            case 1: // PROJECTION
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.projection = new CuratorProjection();
+                struct.projection.read(iprot);
+                struct.setProjectionIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // LEADER_PROJECTION
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.leaderProjection = new LeaderProjection();
+                struct.leaderProjection.read(iprot);
+                struct.setLeaderProjectionIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -8260,13 +8775,18 @@ public class CuratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, newCuratorProjection_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getLeaderParticipants_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.connectionName != null) {
-          oprot.writeFieldBegin(CONNECTION_NAME_FIELD_DESC);
-          oprot.writeString(struct.connectionName);
+        if (struct.projection != null) {
+          oprot.writeFieldBegin(PROJECTION_FIELD_DESC);
+          struct.projection.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.leaderProjection != null) {
+          oprot.writeFieldBegin(LEADER_PROJECTION_FIELD_DESC);
+          struct.leaderProjection.write(oprot);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -8275,52 +8795,64 @@ public class CuratorService {
 
     }
 
-    private static class newCuratorProjection_argsTupleSchemeFactory implements SchemeFactory {
-      public newCuratorProjection_argsTupleScheme getScheme() {
-        return new newCuratorProjection_argsTupleScheme();
+    private static class getLeaderParticipants_argsTupleSchemeFactory implements SchemeFactory {
+      public getLeaderParticipants_argsTupleScheme getScheme() {
+        return new getLeaderParticipants_argsTupleScheme();
       }
     }
 
-    private static class newCuratorProjection_argsTupleScheme extends TupleScheme<newCuratorProjection_args> {
+    private static class getLeaderParticipants_argsTupleScheme extends TupleScheme<getLeaderParticipants_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, newCuratorProjection_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getLeaderParticipants_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetConnectionName()) {
+        if (struct.isSetProjection()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
-        if (struct.isSetConnectionName()) {
-          oprot.writeString(struct.connectionName);
+        if (struct.isSetLeaderProjection()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetProjection()) {
+          struct.projection.write(oprot);
+        }
+        if (struct.isSetLeaderProjection()) {
+          struct.leaderProjection.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, newCuratorProjection_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getLeaderParticipants_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(1);
+        BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.connectionName = iprot.readString();
-          struct.setConnectionNameIsSet(true);
+          struct.projection = new CuratorProjection();
+          struct.projection.read(iprot);
+          struct.setProjectionIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.leaderProjection = new LeaderProjection();
+          struct.leaderProjection.read(iprot);
+          struct.setLeaderProjectionIsSet(true);
         }
       }
     }
 
   }
 
-  public static class newCuratorProjection_result implements org.apache.thrift.TBase<newCuratorProjection_result, newCuratorProjection_result._Fields>, java.io.Serializable, Cloneable, Comparable<newCuratorProjection_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("newCuratorProjection_result");
+  public static class getLeaderParticipants_result implements org.apache.thrift.TBase<getLeaderParticipants_result, getLeaderParticipants_result._Fields>, java.io.Serializable, Cloneable, Comparable<getLeaderParticipants_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getLeaderParticipants_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new newCuratorProjection_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new newCuratorProjection_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getLeaderParticipants_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getLeaderParticipants_resultTupleSchemeFactory());
     }
 
-    public CuratorProjection success; // required
+    public List<Participant> success; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -8385,16 +8917,17 @@ public class CuratorService {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CuratorProjection.class)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Participant.class))));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(newCuratorProjection_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getLeaderParticipants_result.class, metaDataMap);
     }
 
-    public newCuratorProjection_result() {
+    public getLeaderParticipants_result() {
     }
 
-    public newCuratorProjection_result(
-      CuratorProjection success)
+    public getLeaderParticipants_result(
+      List<Participant> success)
     {
       this();
       this.success = success;
@@ -8403,14 +8936,18 @@ public class CuratorService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public newCuratorProjection_result(newCuratorProjection_result other) {
+    public getLeaderParticipants_result(getLeaderParticipants_result other) {
       if (other.isSetSuccess()) {
-        this.success = new CuratorProjection(other.success);
+        List<Participant> __this__success = new ArrayList<Participant>(other.success.size());
+        for (Participant other_element : other.success) {
+          __this__success.add(new Participant(other_element));
+        }
+        this.success = __this__success;
       }
     }
 
-    public newCuratorProjection_result deepCopy() {
-      return new newCuratorProjection_result(this);
+    public getLeaderParticipants_result deepCopy() {
+      return new getLeaderParticipants_result(this);
     }
 
     @Override
@@ -8418,11 +8955,26 @@ public class CuratorService {
       this.success = null;
     }
 
-    public CuratorProjection getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<Participant> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(Participant elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<Participant>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<Participant> getSuccess() {
       return this.success;
     }
 
-    public newCuratorProjection_result setSuccess(CuratorProjection success) {
+    public getLeaderParticipants_result setSuccess(List<Participant> success) {
       this.success = success;
       return this;
     }
@@ -8448,7 +9000,7 @@ public class CuratorService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((CuratorProjection)value);
+          setSuccess((List<Participant>)value);
         }
         break;
 
@@ -8481,12 +9033,12 @@ public class CuratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof newCuratorProjection_result)
-        return this.equals((newCuratorProjection_result)that);
+      if (that instanceof getLeaderParticipants_result)
+        return this.equals((getLeaderParticipants_result)that);
       return false;
     }
 
-    public boolean equals(newCuratorProjection_result that) {
+    public boolean equals(getLeaderParticipants_result that) {
       if (that == null)
         return false;
 
@@ -8508,7 +9060,7 @@ public class CuratorService {
     }
 
     @Override
-    public int compareTo(newCuratorProjection_result other) {
+    public int compareTo(getLeaderParticipants_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -8542,7 +9094,7 @@ public class CuratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("newCuratorProjection_result(");
+      StringBuilder sb = new StringBuilder("getLeaderParticipants_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -8559,9 +9111,6 @@ public class CuratorService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -8580,15 +9129,15 @@ public class CuratorService {
       }
     }
 
-    private static class newCuratorProjection_resultStandardSchemeFactory implements SchemeFactory {
-      public newCuratorProjection_resultStandardScheme getScheme() {
-        return new newCuratorProjection_resultStandardScheme();
+    private static class getLeaderParticipants_resultStandardSchemeFactory implements SchemeFactory {
+      public getLeaderParticipants_resultStandardScheme getScheme() {
+        return new getLeaderParticipants_resultStandardScheme();
       }
     }
 
-    private static class newCuratorProjection_resultStandardScheme extends StandardScheme<newCuratorProjection_result> {
+    private static class getLeaderParticipants_resultStandardScheme extends StandardScheme<getLeaderParticipants_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, newCuratorProjection_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getLeaderParticipants_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -8599,9 +9148,19 @@ public class CuratorService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new CuratorProjection();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list24 = iprot.readListBegin();
+                  struct.success = new ArrayList<Participant>(_list24.size);
+                  for (int _i25 = 0; _i25 < _list24.size; ++_i25)
+                  {
+                    Participant _elem26;
+                    _elem26 = new Participant();
+                    _elem26.read(iprot);
+                    struct.success.add(_elem26);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -8618,13 +9177,20 @@ public class CuratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, newCuratorProjection_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getLeaderParticipants_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (Participant _iter27 : struct.success)
+            {
+              _iter27.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -8633,16 +9199,16 @@ public class CuratorService {
 
     }
 
-    private static class newCuratorProjection_resultTupleSchemeFactory implements SchemeFactory {
-      public newCuratorProjection_resultTupleScheme getScheme() {
-        return new newCuratorProjection_resultTupleScheme();
+    private static class getLeaderParticipants_resultTupleSchemeFactory implements SchemeFactory {
+      public getLeaderParticipants_resultTupleScheme getScheme() {
+        return new getLeaderParticipants_resultTupleScheme();
       }
     }
 
-    private static class newCuratorProjection_resultTupleScheme extends TupleScheme<newCuratorProjection_result> {
+    private static class getLeaderParticipants_resultTupleScheme extends TupleScheme<getLeaderParticipants_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, newCuratorProjection_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getLeaderParticipants_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -8650,17 +9216,32 @@ public class CuratorService {
         }
         oprot.writeBitSet(optionals, 1);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          {
+            oprot.writeI32(struct.success.size());
+            for (Participant _iter28 : struct.success)
+            {
+              _iter28.write(oprot);
+            }
+          }
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, newCuratorProjection_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getLeaderParticipants_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = new CuratorProjection();
-          struct.success.read(iprot);
+          {
+            org.apache.thrift.protocol.TList _list29 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<Participant>(_list29.size);
+            for (int _i30 = 0; _i30 < _list29.size; ++_i30)
+            {
+              Participant _elem31;
+              _elem31 = new Participant();
+              _elem31.read(iprot);
+              struct.success.add(_elem31);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
       }
@@ -8668,25 +9249,25 @@ public class CuratorService {
 
   }
 
-  public static class setData_args implements org.apache.thrift.TBase<setData_args, setData_args._Fields>, java.io.Serializable, Cloneable, Comparable<setData_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setData_args");
+  public static class isLeader_args implements org.apache.thrift.TBase<isLeader_args, isLeader_args._Fields>, java.io.Serializable, Cloneable, Comparable<isLeader_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isLeader_args");
 
     private static final org.apache.thrift.protocol.TField PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("projection", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField SPEC_FIELD_DESC = new org.apache.thrift.protocol.TField("spec", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField LEADER_PROJECTION_FIELD_DESC = new org.apache.thrift.protocol.TField("leaderProjection", org.apache.thrift.protocol.TType.STRUCT, (short)2);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new setData_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new setData_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new isLeader_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new isLeader_argsTupleSchemeFactory());
     }
 
     public CuratorProjection projection; // required
-    public SetDataSpec spec; // required
+    public LeaderProjection leaderProjection; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       PROJECTION((short)1, "projection"),
-      SPEC((short)2, "spec");
+      LEADER_PROJECTION((short)2, "leaderProjection");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -8703,8 +9284,8 @@ public class CuratorService {
         switch(fieldId) {
           case 1: // PROJECTION
             return PROJECTION;
-          case 2: // SPEC
-            return SPEC;
+          case 2: // LEADER_PROJECTION
+            return LEADER_PROJECTION;
           default:
             return null;
         }
@@ -8750,51 +9331,51 @@ public class CuratorService {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.PROJECTION, new org.apache.thrift.meta_data.FieldMetaData("projection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CuratorProjection.class)));
-      tmpMap.put(_Fields.SPEC, new org.apache.thrift.meta_data.FieldMetaData("spec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetDataSpec.class)));
+      tmpMap.put(_Fields.LEADER_PROJECTION, new org.apache.thrift.meta_data.FieldMetaData("leaderProjection", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, LeaderProjection.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setData_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isLeader_args.class, metaDataMap);
     }
 
-    public setData_args() {
+    public isLeader_args() {
     }
 
-    public setData_args(
+    public isLeader_args(
       CuratorProjection projection,
-      SetDataSpec spec)
+      LeaderProjection leaderProjection)
     {
       this();
       this.projection = projection;
-      this.spec = spec;
+      this.leaderProjection = leaderProjection;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public setData_args(setData_args other) {
+    public isLeader_args(isLeader_args other) {
       if (other.isSetProjection()) {
         this.projection = new CuratorProjection(other.projection);
       }
-      if (other.isSetSpec()) {
-        this.spec = new SetDataSpec(other.spec);
+      if (other.isSetLeaderProjection()) {
+        this.leaderProjection = new LeaderProjection(other.leaderProjection);
       }
     }
 
-    public setData_args deepCopy() {
-      return new setData_args(this);
+    public isLeader_args deepCopy() {
+      return new isLeader_args(this);
     }
 
     @Override
     public void clear() {
       this.projection = null;
-      this.spec = null;
+      this.leaderProjection = null;
     }
 
     public CuratorProjection getProjection() {
       return this.projection;
     }
 
-    public setData_args setProjection(CuratorProjection projection) {
+    public isLeader_args setProjection(CuratorProjection projection) {
       this.projection = projection;
       return this;
     }
@@ -8814,27 +9395,27 @@ public class CuratorService {
       }
     }
 
-    public SetDataSpec getSpec() {
-      return this.spec;
+    public LeaderProjection getLeaderProjection() {
+      return this.leaderProjection;
     }
 
-    public setData_args setSpec(SetDataSpec spec) {
-      this.spec = spec;
+    public isLeader_args setLeaderProjection(LeaderProjection leaderProjection) {
+      this.leaderProjection = leaderProjection;
       return this;
     }
 
-    public void unsetSpec() {
-      this.spec = null;
+    public void unsetLeaderProjection() {
+      this.leaderProjection = null;
     }
 
-    /** Returns true if field spec is set (has been assigned a value) and false otherwise */
-    public boolean isSetSpec() {
-      return this.spec != null;
+    /** Returns true if field leaderProjection is set (has been assigned a value) and false otherwise */
+    public boolean isSetLeaderProjection() {
+      return this.leaderProjection != null;
     }
 
-    public void setSpecIsSet(boolean value) {
+    public void setLeaderProjectionIsSet(boolean value) {
       if (!value) {
-        this.spec = null;
+        this.leaderProjection = null;
       }
     }
 
@@ -8848,11 +9429,11 @@ public class CuratorService {
         }
         break;
 
-      case SPEC:
+      case LEADER_PROJECTION:
         if (value == null) {
-          unsetSpec();
+          unsetLeaderProjection();
         } else {
-          setSpec((SetDataSpec)value);
+          setLeaderProjection((LeaderProjection)value);
         }
         break;
 
@@ -8864,8 +9445,8 @@ public class CuratorService {
       case PROJECTION:
         return getProjection();
 
-      case SPEC:
-        return getSpec();
+      case LEADER_PROJECTION:
+        return getLeaderProjection();
 
       }
       throw new IllegalStateException();
@@ -8880,8 +9461,8 @@ public class CuratorService {
       switch (field) {
       case PROJECTION:
         return isSetProjection();
-      case SPEC:
-        return isSetSpec();
+      case LEADER_PROJECTION:
+        return isSetLeaderProjection();
       }
       throw new IllegalStateException();
     }
@@ -8890,12 +9471,12 @@ public class CuratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof setData_args)
-        return this.equals((setData_args)that);
+      if (that instanceof isLeader_args)
+        return this.equals((isLeader_args)that);
       return false;
     }
 
-    public boolean equals(setData_args that) {
+    public boolean equals(isLeader_args that) {
       if (that == null)
         return false;
 
@@ -8908,12 +9489,12 @@ public class CuratorService {
           return false;
       }
 
-      boolean this_present_spec = true && this.isSetSpec();
-      boolean that_present_spec = true && that.isSetSpec();
-      if (this_present_spec || that_present_spec) {
-        if (!(this_present_spec && that_present_spec))
+      boolean this_present_leaderProjection = true && this.isSetLeaderProjection();
+      boolean that_present_leaderProjection = true && that.isSetLeaderProjection();
+      if (this_present_leaderProjection || that_present_leaderProjection) {
+        if (!(this_present_leaderProjection && that_present_leaderProjection))
           return false;
-        if (!this.spec.equals(that.spec))
+        if (!this.leaderProjection.equals(that.leaderProjection))
           return false;
       }
 
@@ -8926,7 +9507,7 @@ public class CuratorService {
     }
 
     @Override
-    public int compareTo(setData_args other) {
+    public int compareTo(isLeader_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -8943,12 +9524,12 @@ public class CuratorService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetSpec()).compareTo(other.isSetSpec());
+      lastComparison = Boolean.valueOf(isSetLeaderProjection()).compareTo(other.isSetLeaderProjection());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetSpec()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.spec, other.spec);
+      if (isSetLeaderProjection()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.leaderProjection, other.leaderProjection);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -8970,7 +9551,7 @@ public class CuratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("setData_args(");
+      StringBuilder sb = new StringBuilder("isLeader_args(");
       boolean first = true;
 
       sb.append("projection:");
@@ -8981,11 +9562,11 @@ public class CuratorService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("spec:");
-      if (this.spec == null) {
+      sb.append("leaderProjection:");
+      if (this.leaderProjection == null) {
         sb.append("null");
       } else {
-        sb.append(this.spec);
+        sb.append(this.leaderProjection);
       }
       first = false;
       sb.append(")");
@@ -8998,8 +9579,8 @@ public class CuratorService {
       if (projection != null) {
         projection.validate();
       }
-      if (spec != null) {
-        spec.validate();
+      if (leaderProjection != null) {
+        leaderProjection.validate();
       }
     }
 
@@ -9019,15 +9600,15 @@ public class CuratorService {
       }
     }
 
-    private static class setData_argsStandardSchemeFactory implements SchemeFactory {
-      public setData_argsStandardScheme getScheme() {
-        return new setData_argsStandardScheme();
+    private static class isLeader_argsStandardSchemeFactory implements SchemeFactory {
+      public isLeader_argsStandardScheme getScheme() {
+        return new isLeader_argsStandardScheme();
       }
     }
 
-    private static class setData_argsStandardScheme extends StandardScheme<setData_args> {
+    private static class isLeader_argsStandardScheme extends StandardScheme<isLeader_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, setData_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, isLeader_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -9046,11 +9627,11 @@ public class CuratorService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // SPEC
+            case 2: // LEADER_PROJECTION
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.spec = new SetDataSpec();
-                struct.spec.read(iprot);
-                struct.setSpecIsSet(true);
+                struct.leaderProjection = new LeaderProjection();
+                struct.leaderProjection.read(iprot);
+                struct.setLeaderProjectionIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -9066,7 +9647,7 @@ public class CuratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, setData_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, isLeader_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -9075,9 +9656,9 @@ public class CuratorService {
           struct.projection.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.spec != null) {
-          oprot.writeFieldBegin(SPEC_FIELD_DESC);
-          struct.spec.write(oprot);
+        if (struct.leaderProjection != null) {
+          oprot.writeFieldBegin(LEADER_PROJECTION_FIELD_DESC);
+          struct.leaderProjection.write(oprot);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -9086,35 +9667,35 @@ public class CuratorService {
 
     }
 
-    private static class setData_argsTupleSchemeFactory implements SchemeFactory {
-      public setData_argsTupleScheme getScheme() {
-        return new setData_argsTupleScheme();
+    private static class isLeader_argsTupleSchemeFactory implements SchemeFactory {
+      public isLeader_argsTupleScheme getScheme() {
+        return new isLeader_argsTupleScheme();
       }
     }
 
-    private static class setData_argsTupleScheme extends TupleScheme<setData_args> {
+    private static class isLeader_argsTupleScheme extends TupleScheme<isLeader_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, setData_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, isLeader_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetProjection()) {
           optionals.set(0);
         }
-        if (struct.isSetSpec()) {
+        if (struct.isSetLeaderProjection()) {
           optionals.set(1);
         }
         oprot.writeBitSet(optionals, 2);
         if (struct.isSetProjection()) {
           struct.projection.write(oprot);
         }
-        if (struct.isSetSpec()) {
-          struct.spec.write(oprot);
+        if (struct.isSetLeaderProjection()) {
+          struct.leaderProjection.write(oprot);
         }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, setData_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, isLeader_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
@@ -9123,27 +9704,27 @@ public class CuratorService {
           struct.setProjectionIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.spec = new SetDataSpec();
-          struct.spec.read(iprot);
-          struct.setSpecIsSet(true);
+          struct.leaderProjection = new LeaderProjection();
+          struct.leaderProjection.read(iprot);
+          struct.setLeaderProjectionIsSet(true);
         }
       }
     }
 
   }
 
-  public static class setData_result implements org.apache.thrift.TBase<setData_result, setData_result._Fields>, java.io.Serializable, Cloneable, Comparable<setData_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("setData_result");
+  public static class isLeader_result implements org.apache.thrift.TBase<isLeader_result, isLeader_result._Fields>, java.io.Serializable, Cloneable, Comparable<isLeader_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isLeader_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new setData_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new setData_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new isLeader_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new isLeader_resultTupleSchemeFactory());
     }
 
-    public Stat success; // required
+    public boolean success; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -9204,65 +9785,67 @@ public class CuratorService {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Stat.class)));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(setData_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isLeader_result.class, metaDataMap);
     }
 
-    public setData_result() {
+    public isLeader_result() {
     }
 
-    public setData_result(
-      Stat success)
+    public isLeader_result(
+      boolean success)
     {
       this();
       this.success = success;
+      setSuccessIsSet(true);
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public setData_result(setData_result other) {
-      if (other.isSetSuccess()) {
-        this.success = new Stat(other.success);
-      }
+    public isLeader_result(isLeader_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
     }
 
-    public setData_result deepCopy() {
-      return new setData_result(this);
+    public isLeader_result deepCopy() {
+      return new isLeader_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
+      setSuccessIsSet(false);
+      this.success = false;
     }
 
-    public Stat getSuccess() {
+    public boolean isSuccess() {
       return this.success;
     }
 
-    public setData_result setSuccess(Stat success) {
+    public isLeader_result setSuccess(boolean success) {
       this.success = success;
+      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      this.success = null;
+      __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return this.success != null;
+      return EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
+      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
     }
 
     public void setFieldValue(_Fields field, Object value) {
@@ -9271,7 +9854,7 @@ public class CuratorService {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((Stat)value);
+          setSuccess((Boolean)value);
         }
         break;
 
@@ -9281,7 +9864,7 @@ public class CuratorService {
     public Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return getSuccess();
+        return Boolean.valueOf(isSuccess());
 
       }
       throw new IllegalStateException();
@@ -9304,21 +9887,21 @@ public class CuratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof setData_result)
-        return this.equals((setData_result)that);
+      if (that instanceof isLeader_result)
+        return this.equals((isLeader_result)that);
       return false;
     }
 
-    public boolean equals(setData_result that) {
+    public boolean equals(isLeader_result that) {
       if (that == null)
         return false;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
+      boolean this_present_success = true;
+      boolean that_present_success = true;
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (!this.success.equals(that.success))
+        if (this.success != that.success)
           return false;
       }
 
@@ -9331,7 +9914,7 @@ public class CuratorService {
     }
 
     @Override
-    public int compareTo(setData_result other) {
+    public int compareTo(isLeader_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -9365,15 +9948,11 @@ public class CuratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("setData_result(");
+      StringBuilder sb = new StringBuilder("isLeader_result(");
       boolean first = true;
 
       sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
+      sb.append(this.success);
       first = false;
       sb.append(")");
       return sb.toString();
@@ -9382,9 +9961,6 @@ public class CuratorService {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -9397,21 +9973,23 @@ public class CuratorService {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class setData_resultStandardSchemeFactory implements SchemeFactory {
-      public setData_resultStandardScheme getScheme() {
-        return new setData_resultStandardScheme();
+    private static class isLeader_resultStandardSchemeFactory implements SchemeFactory {
+      public isLeader_resultStandardScheme getScheme() {
+        return new isLeader_resultStandardScheme();
       }
     }
 
-    private static class setData_resultStandardScheme extends StandardScheme<setData_result> {
+    private static class isLeader_resultStandardScheme extends StandardScheme<isLeader_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, setData_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, isLeader_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -9422,9 +10000,8 @@ public class CuratorService {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new Stat();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -9441,13 +10018,13 @@ public class CuratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, setData_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, isLeader_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
+        if (struct.isSetSuccess()) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          oprot.writeBool(struct.success);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -9456,16 +10033,16 @@ public class CuratorService {
 
     }
 
-    private static class setData_resultTupleSchemeFactory implements SchemeFactory {
-      public setData_resultTupleScheme getScheme() {
-        return new setData_resultTupleScheme();
+    private static class isLeader_resultTupleSchemeFactory implements SchemeFactory {
+      public isLeader_resultTupleScheme getScheme() {
+        return new isLeader_resultTupleScheme();
       }
     }
 
-    private static class setData_resultTupleScheme extends TupleScheme<setData_result> {
+    private static class isLeader_resultTupleScheme extends TupleScheme<isLeader_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, setData_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, isLeader_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -9473,17 +10050,16 @@ public class CuratorService {
         }
         oprot.writeBitSet(optionals, 1);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          oprot.write

<TRUNCATED>