org.jboss.cache.loader
Interface ExtendedCacheLoader

All Superinterfaces:
CacheLoader, org.jboss.system.Service
All Known Implementing Classes:
AsyncExtendedCacheLoader, ChainingCacheLoader, FileCacheLoader, FileExtendedCacheLoader, JDBCExtendedCacheLoader, JdbmCacheLoader

public interface ExtendedCacheLoader
extends CacheLoader

Extends the CacheLoader interface by adding methods to support serialized transfer of a portion of a cache tree.

NOTE: The methods in this interface will be merged into CacheLoader in JBossCache 1.3.

Version:
$Revision$
Author:
Brian Stansberry

Method Summary
 byte[] loadState(Fqn subtree)
          Fetch a portion of the state for this cache from secondary storage (disk, DB) and return it as a byte buffer.
 void setRegionManager(RegionManager manager)
          Sets the RegionManager this object should use to manage marshalling/unmarshalling of different regions using different classloaders.
 void storeState(byte[] state, Fqn subtree)
          Store the given portion of the cache tree's state in secondary storage.
 
Methods inherited from interface org.jboss.cache.loader.CacheLoader
commit, exists, get, getChildrenNames, loadEntireState, prepare, put, put, put, remove, remove, removeData, rollback, setCache, setConfig, storeEntireState
 
Methods inherited from interface org.jboss.system.Service
create, destroy, start, stop
 

Method Detail

loadState

byte[] loadState(Fqn subtree)
                 throws java.lang.Exception
Fetch a portion of the state for this cache from secondary storage (disk, DB) and return it as a byte buffer. This is for activation of a portion of new cache from a remote cache. The new cache would then call storeState(byte[], Fqn).

Parameters:
subtree - Fqn naming the root (i.e. highest level parent) node of the subtree for which state is requested.
Throws:
java.lang.Exception
See Also:
TreeCache.activateRegion(String)

storeState

void storeState(byte[] state,
                Fqn subtree)
                throws java.lang.Exception
Store the given portion of the cache tree's state in secondary storage. Overwrite whatever is currently in secondary storage. If the transferred state has Fqns equal to or children of parameter subtree, then no special behavior is required. Otherwise, ensure that the state is integrated under the given subtree. Typically in the latter case subtree would be the Fqn of the buddy backup region for a buddy group; e.g.

If the the transferred state had Fqns starting with "/a" and subtree was "/_BUDDY_BACKUP_/192.168.1.2:5555" then the state should be stored in the local persistent store under "/_BUDDY_BACKUP_/192.168.1.2:5555/a"

Parameters:
state - the state to store
subtree - Fqn naming the root (i.e. highest level parent) node of the subtree included in state. If the Fqns of the data included in state are not already children of subtree, then their Fqns should be altered to make them children of subtree before they are persisted.
Throws:
java.lang.Exception

setRegionManager

void setRegionManager(RegionManager manager)
Sets the RegionManager this object should use to manage marshalling/unmarshalling of different regions using different classloaders.

NOTE: This method is only intended to be used by the TreeCache instance this cache loader is associated with.

Parameters:
manager - the region manager to use, or null.


Copyright 1998-2005 JBoss Inc . All Rights Reserved.