All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alipay.sofa.jraft.rpc.CliClientService Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.alipay.sofa.jraft.rpc;

import java.util.concurrent.Future;

import com.alipay.sofa.jraft.util.Endpoint;
import com.google.protobuf.Message;

/**
 * Cli RPC client service.
 *
 * @author boyan ([email protected])
 *
 * 2018-Apr-09 11:15:13 AM
 */
public interface CliClientService extends ClientService {

    /**
     * Adds a peer.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future addPeer(Endpoint endpoint, CliRequests.AddPeerRequest request,
                            RpcResponseClosure done);

    /**
     * Removes a peer.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future removePeer(Endpoint endpoint, CliRequests.RemovePeerRequest request,
                               RpcResponseClosure done);

    /**
     * Reset a peer.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future resetPeer(Endpoint endpoint, CliRequests.ResetPeerRequest request,
                              RpcResponseClosure done);

    /**
     * Do a snapshot.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future snapshot(Endpoint endpoint, CliRequests.SnapshotRequest request,
                             RpcResponseClosure done);

    /**
     * Change peers.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future changePeers(Endpoint endpoint, CliRequests.ChangePeersRequest request,
                                RpcResponseClosure done);

    /**
     * Add learners
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     * @since 1.3.0
     */
    Future addLearners(Endpoint endpoint, CliRequests.AddLearnersRequest request,
                                RpcResponseClosure done);

    /**
     * Remove learners
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     * @since 1.3.0
     */
    Future removeLearners(Endpoint endpoint, CliRequests.RemoveLearnersRequest request,
                                   RpcResponseClosure done);

    /**
     * Reset learners
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     * @since 1.3.0
     */
    Future resetLearners(Endpoint endpoint, CliRequests.ResetLearnersRequest request,
                                  RpcResponseClosure done);

    /**
     * Get the group leader.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future getLeader(Endpoint endpoint, CliRequests.GetLeaderRequest request,
                              RpcResponseClosure done);

    /**
     * Transfer leadership to other peer.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future transferLeader(Endpoint endpoint, CliRequests.TransferLeaderRequest request,
                                   RpcResponseClosure done);

    /**
     * Get all peers of the replication group.
     *
     * @param endpoint  server address
     * @param request   request data
     * @param done      callback
     * @return a future with result
     */
    Future getPeers(Endpoint endpoint, CliRequests.GetPeersRequest request,
                             RpcResponseClosure done);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy