package com.intrbiz.bergamot.queue; import com.intrbiz.bergamot.model.message.command.CommandRequest; import com.intrbiz.bergamot.model.message.command.CommandResponse; import com.intrbiz.bergamot.queue.impl.RabbitBergamotCommandQueue; 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 for workers or other daemons to exeucte commands against the core * */ public abstract class BergamotCommandQueue extends QueueAdapter { static { RabbitBergamotCommandQueue.register(); } public static BergamotCommandQueue open() { return QueueManager.getInstance().queueAdapter(BergamotCommandQueue.class); } // RPC methods public abstract RPCServer<CommandRequest, CommandResponse> createBergamotCommandRPCServer(RPCHandler<CommandRequest, CommandResponse> handler); public abstract RPCClient<CommandRequest, CommandResponse, RoutingKey> createBergamotCommandRPCClient(); }