package com.intrbiz.bergamot.queue;
import com.intrbiz.bergamot.model.message.cluster.manager.ClusterManagerRequest;
import com.intrbiz.bergamot.model.message.cluster.manager.ClusterManagerResponse;
import com.intrbiz.bergamot.queue.impl.RabbitBergamotClusterManagerQueue;
import com.intrbiz.queue.QueueAdapter;
import com.intrbiz.queue.QueueManager;
import com.intrbiz.queue.RPCClient;
import com.intrbiz.queue.RPCHandler;
import com.intrbiz.queue.RPCServer;
import com.intrbiz.queue.name.RoutingKey;
/**
* RPC queue to the Bergamot Cluster Manager, allowing the CLI to manage the UI cluster
*/
public abstract class BergamotClusterManagerQueue extends QueueAdapter
{
static
{
RabbitBergamotClusterManagerQueue.register();
}
public static BergamotClusterManagerQueue open()
{
return QueueManager.getInstance().queueAdapter(BergamotClusterManagerQueue.class);
}
// RPC methods
public abstract RPCServer<ClusterManagerRequest, ClusterManagerResponse> createBergamotClusterManagerRPCServer(RPCHandler<ClusterManagerRequest, ClusterManagerResponse> handler);
public abstract RPCClient<ClusterManagerRequest, ClusterManagerResponse, RoutingKey> createBergamotClusterManagerRPCClient();
}