net.rubyeye.xmemcached.command.KestrelCommandFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xmemcached Show documentation
Show all versions of xmemcached Show documentation
Extreme performance modern memcached client for java
package net.rubyeye.xmemcached.command;
import java.net.InetSocketAddress;
import java.util.Collection;
import java.util.concurrent.CountDownLatch;
import net.rubyeye.xmemcached.CommandFactory;
import net.rubyeye.xmemcached.buffer.BufferAllocator;
import net.rubyeye.xmemcached.command.kestrel.KestrelDeleteCommand;
import net.rubyeye.xmemcached.command.kestrel.KestrelFlushAllCommand;
import net.rubyeye.xmemcached.command.kestrel.KestrelGetCommand;
import net.rubyeye.xmemcached.command.kestrel.KestrelSetCommand;
import net.rubyeye.xmemcached.command.text.TextQuitCommand;
import net.rubyeye.xmemcached.command.text.TextStatsCommand;
import net.rubyeye.xmemcached.transcoders.Transcoder;
import net.rubyeye.xmemcached.utils.Protocol;
/**
* Kestrel is a message queue written in scala by
* robey(http://github.com/robey/kestrel).It's protocol use memcached text
* protocol,so you can use any memcached clients to talk with it.But it's
* protocol implementation is not all compatible with memcached standard
* protocol,So xmemcached supply this command factory for it.
*
* @author dennis
*
*/
@SuppressWarnings("unchecked")
public class KestrelCommandFactory implements CommandFactory {
public Command createAddCommand(String key, byte[] keyBytes, int exp,
Object value, boolean noreply, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createAppendCommand(String key, byte[] keyBytes,
Object value, boolean noreply, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createCASCommand(String key, byte[] keyBytes, int exp,
Object value, long cas, boolean noreply, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createDeleteCommand(String key, byte[] keyBytes, int time,
boolean noreply) {
return new KestrelDeleteCommand(key, keyBytes, -1,
new CountDownLatch(1), noreply);
}
public Command createFlushAllCommand(CountDownLatch latch, int delay,
boolean noreply) {
return new KestrelFlushAllCommand(latch, delay, noreply);
}
public Command createGetCommand(String key, byte[] keyBytes,
CommandType cmdType, Transcoder transcoder) {
return new KestrelGetCommand(key, keyBytes, cmdType,
new CountDownLatch(1), transcoder);
}
public Command createGetMultiCommand(Collection keys,
CountDownLatch latch, CommandType cmdType, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createIncrDecrCommand(String key, byte[] keyBytes,
long amount, long initial, int expTime, CommandType cmdType,
boolean noreply) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createPrependCommand(String key, byte[] keyBytes,
Object value, boolean noreply, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createReplaceCommand(String key, byte[] keyBytes, int exp,
Object value, boolean noreply, Transcoder transcoder) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createSetCommand(String key, byte[] keyBytes, int exp,
Object value, boolean noreply, Transcoder transcoder) {
return new KestrelSetCommand(key, keyBytes, CommandType.SET,
new CountDownLatch(1), exp, -1, value, noreply, transcoder);
}
public Command createStatsCommand(InetSocketAddress server,
CountDownLatch latch, String itemName) {
if (itemName != null) {
throw new UnsupportedOperationException(
"Kestrel doesn't support 'stats itemName'");
}
return new TextStatsCommand(server, latch, null);
}
public Command createVerbosityCommand(CountDownLatch latch, int level,
boolean noreply) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createVersionCommand(CountDownLatch latch,
InetSocketAddress server) {
throw new UnsupportedOperationException(
"Kestrel doesn't support this operation");
}
public Command createQuitCommand() {
return new TextQuitCommand();
}
public Protocol getProtocol() {
return Protocol.Kestrel;
}
public Command createAuthListMechanismsCommand(CountDownLatch latch) {
throw new UnsupportedOperationException("Kestrel doesn't support SASL");
}
public Command createAuthStartCommand(String mechanism,
CountDownLatch latch, byte[] authData) {
throw new UnsupportedOperationException("Kestrel doesn't support SASL");
}
public Command createAuthStepCommand(String mechanism,
CountDownLatch latch, byte[] authData) {
throw new UnsupportedOperationException("Kestrel doesn't support SASL");
}
public Command createGetAndTouchCommand(String key, byte[] keyBytes,
CountDownLatch latch, int exp, boolean noreply) {
throw new UnsupportedOperationException(
"GAT is only supported by binary protocol");
}
public Command createTouchCommand(String key, byte[] keyBytes, CountDownLatch latch,
int exp, boolean noreply) {
throw new UnsupportedOperationException(
"Touch is only supported by binary protocol");
}
public void setBufferAllocator(BufferAllocator bufferAllocator) {
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy