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 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
 Collection<Operation> clone(KeyedOperation op)
          Clone an operation.
protected abstract  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, stats, store, version
 

Constructor Detail

BaseOperationFactory

public BaseOperationFactory()
Method Detail

clone

public 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 Collection<? extends Operation> cloneGet(KeyedOperation op)