ehcache

net.sf.ehcache.writer.writebehind
Class AbstractWriteBehindQueue

java.lang.Object
  extended by net.sf.ehcache.writer.writebehind.AbstractWriteBehindQueue
All Implemented Interfaces:
WriteBehind

public abstract class AbstractWriteBehindQueue
extends Object
implements WriteBehind

Abstract implementation of a WriteBehindQueue.

Author:
tim

Constructor Summary
AbstractWriteBehindQueue(CacheConfiguration config)
          Create a new write behind queue.
 
Method Summary
protected abstract  void addItem(SingleOperation operation)
          Add an item to the write behind queue
 void delete(CacheEntry entry)
          Add a delete operation for the given cache entry
protected  Thread getProcessingThread()
          Backdoor to allow killing the processing thread for testing purposes.
abstract  long getQueueSize()
          Gets the best estimate for items in the queue still awaiting processing.
protected abstract  List<SingleOperation> quarantineItems()
          Quarantine items to be processed.
protected abstract  void reinsertUnprocessedItems(List<SingleOperation> operations)
          Reinsert any unfinished operations into the queue.
 void setOperationsFilter(OperationsFilter filter)
          Set the operations filter that should be used.
 void start(CacheWriter writer)
          Start the write behind queue with a cache writer
 void stop()
          Stop the coordinator and all the internal data structures.
 void write(Element element)
          Add a write operation for a given element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractWriteBehindQueue

public AbstractWriteBehindQueue(CacheConfiguration config)
Create a new write behind queue.

Parameters:
config - the configuration for the queue
Method Detail

quarantineItems

protected abstract List<SingleOperation> quarantineItems()
Quarantine items to be processed.

Returns:
list of operations

addItem

protected abstract void addItem(SingleOperation operation)
Add an item to the write behind queue

Parameters:
operation - operation to be done

reinsertUnprocessedItems

protected abstract void reinsertUnprocessedItems(List<SingleOperation> operations)
Reinsert any unfinished operations into the queue.

Parameters:
operations - list of unfinished operations

start

public void start(CacheWriter writer)
Start the write behind queue with a cache writer

Specified by:
start in interface WriteBehind
Parameters:
writer - the cache writer that should be used to process the operations
See Also:
WriteBehind.stop()

setOperationsFilter

public void setOperationsFilter(OperationsFilter filter)
Set the operations filter that should be used.

Specified by:
setOperationsFilter in interface WriteBehind
Parameters:
filter - the filter that will be used as of now

write

public void write(Element element)
Add a write operation for a given element.

Specified by:
write in interface WriteBehind
Parameters:
element - the element for which a write operation will be added to the write behind queue

delete

public void delete(CacheEntry entry)
Add a delete operation for the given cache entry

Specified by:
delete in interface WriteBehind
Parameters:
entry - the cache entry for which a delete operation will be added to the write behind queue

stop

public void stop()
          throws CacheException
Stop the coordinator and all the internal data structures.

This stops as quickly as possible without losing any previously added items. However, no guarantees are made towards the processing of these items. It's highly likely that items are still inside the internal data structures and not processed.

Specified by:
stop in interface WriteBehind
Throws:
CacheException
See Also:
WriteBehind.start(net.sf.ehcache.writer.CacheWriter)

getQueueSize

public abstract long getQueueSize()
Gets the best estimate for items in the queue still awaiting processing. Not including elements currently processed

Specified by:
getQueueSize in interface WriteBehind
Returns:
the amount of elements still awaiting processing.

getProcessingThread

protected Thread getProcessingThread()
Backdoor to allow killing the processing thread for testing purposes.


ehcache

Copyright 2001-2014, Terracotta, Inc.