@@ -0,0 +1,1712 @@
+/*%0A * Copyright 2014 the original author or authors.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage net.kuujo.raft;%0A%0Aimport org.vertx.java.core.AsyncResult;%0Aimport org.vertx.java.core.Handler;%0A%0A/**%0A * A replica.%0A *%0A * @author Jordan Halterman%0A */%0Apublic interface Replica %7B%0A%0A  /**%0A   * Returns the address of the cluster to which the replica belongs.%0A   *%0A   * @return%0A   *   The address of the cluster to which the replica belongs.%0A   */%0A  String cluster();%0A%0A  /**%0A   * Returns the address of the replica.%0A   *%0A   * @return%0A   *   The unique event bus address of the replica.%0A   */%0A  String address();%0A%0A  /**%0A   * Starts the replica.%0A   *%0A   * @return%0A   *   The replica instance.%0A   */%0A  Replica start();%0A%0A  /**%0A   * Starts the replica.%0A   *%0A   * @param doneHandler%0A   *   An asynchronous handler to be called once the replica is started.%0A   * @return%0A   *   The replica instance.%0A   */%0A  Replica start(Handler%3CAsyncResult%3CVoid%3E%3E doneHandler);%0A%0A  /**%0A   * Stops the replica.%0A   */%0A  void stop();%0A%0A  /**%0A   * Stops the replica.%0A   *%0A   * @param doneHandler%0A   *   An asynchronous handler to be called once the replica is stopped.%0A   */%0A  void stop(Handler%3CAsyncResult%3CVoid%3E%3E doneHandler);%0A%0A%7D%0A

Add primary replica API.