net.spy.memcached.ops
Class BaseOperationFactory

java.lang.Object
  extended by net.spy.memcached.ops.BaseOperationFactory
All Implemented Interfaces:
OperationFactory
Direct Known Subclasses:
AsciiOperationFactory, BinaryOperationFactory

public abstract class BaseOperationFactory
extends java.lang.Object
implements OperationFactory

Base class for operation factories.

There is little common code between OperationFactory implementations, but some exists, and is complicated and likely to cause problems.


Constructor Summary
BaseOperationFactory()
           
 
Method Summary
 java.util.Collection<Operation> clone(KeyedOperation op)
          Clone an operation.
protected abstract  java.util.Collection<? extends Operation> cloneGet(KeyedOperation op)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.spy.memcached.OperationFactory
cas, cat, delete, flush, get, get, gets, mutate, noop, saslAuth, saslMechs, saslStep, stats, store, version
 

Constructor Detail

BaseOperationFactory

public BaseOperationFactory()
Method Detail

clone

public java.util.Collection<Operation> clone(KeyedOperation op)
Description copied from interface: OperationFactory
Clone an operation.

This is used for requeueing operations after a server is found to be down.

Note that it returns more than one operation because a multi-get could potentially need to be played against a large number of underlying servers. In this case, there's a separate operation for each, and callback fa?ade to reassemble them. It is left up to the operation pipeline to perform whatever optimization is required to turn these back into multi-gets.

Specified by:
clone in interface OperationFactory
Parameters:
op - the operation to clone
Returns:
a new operation for each key in the original operation

cloneGet

protected abstract java.util.Collection<? extends Operation> cloneGet(KeyedOperation op)