package com.lambdaworks.redis.cluster.api.sync;
import java.lang.AutoCloseable;
import java.util.List;
import java.util.Map;
/**
*
* Synchronous executed commands on a node selection for basic commands.
*
* @param <K> Key type.
* @param <V> Value type.
* @author Mark Paluch
* @since 4.0
* @generated by com.lambdaworks.apigenerator.CreateSyncNodeSelectionClusterApi
*/
public interface BaseNodeSelectionCommands<K, V> extends AutoCloseable {
/**
* Post a message to a channel.
*
* @param channel the channel type: key
* @param message the message type: value
* @return Long integer-reply the number of clients that received the message.
*/
Executions<Long> publish(K channel, V message);
/**
* Lists the currently *active channels*.
*
* @return List<K> array-reply a list of active channels, optionally matching the specified pattern.
*/
Executions<List<K>> pubsubChannels();
/**
* Lists the currently *active channels*.
*
* @param channel the key
* @return List<K> array-reply a list of active channels, optionally matching the specified pattern.
*/
Executions<List<K>> pubsubChannels(K channel);
/**
* Returns the number of subscribers (not counting clients subscribed to patterns) for the specified channels.
*
* @param channels channel keys
* @return array-reply a list of channels and number of subscribers for every channel.
*/
Executions<Map<K, Long>> pubsubNumsub(K... channels);
/**
* Returns the number of subscriptions to patterns.
*
* @return Long integer-reply the number of patterns all the clients are subscribed to.
*/
Executions<Long> pubsubNumpat();
/**
* Echo the given string.
*
* @param msg the message type: value
* @return V bulk-string-reply
*/
Executions<V> echo(V msg);
/**
* Return the role of the instance in the context of replication.
*
* @return List<Object> array-reply where the first element is one of master, slave, sentinel and the additional
* elements are role-specific.
*/
Executions<List<Object>> role();
/**
* Ping the server.
*
* @return String simple-string-reply
*/
Executions<String> ping();
/**
* Close the connection.
*
* @return String simple-string-reply always OK.
*/
Executions<String> quit();
/**
* Wait for replication.
*
* @param replicas minimum number of replicas
* @param timeout timeout in milliseconds
* @return number of replicas
*/
Executions<Long> waitForReplication(int replicas, long timeout);
}