|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jboss.cache.mvcc.MVCCNodeHelper
public class MVCCNodeHelper
Utility functions to manipulate wrapping InternalNodes as ReadCommittedNode
or RepeatableReadNodes. Would also entail locking, if necessary.
| Constructor Summary | |
|---|---|
MVCCNodeHelper()
|
|
| Method Summary | |
|---|---|
void |
injectDependencies(DataContainer dataContainer,
NodeFactory nodeFactory,
LockManager lockManager,
Configuration configuration)
|
void |
start()
|
NodeSPI |
wrapNodeForReading(InvocationContext ctx,
Fqn fqn,
boolean putInContext)
Similar to wrapNodesForReading(org.jboss.cache.InvocationContext, java.util.Collection) except
that this version takes a single Fqn parameter to wrap a single node. |
ReadCommittedNode |
wrapNodeForWriting(InvocationContext context,
Fqn fqn,
boolean lockForWriting,
boolean createIfAbsent,
boolean includeInvalidNodes,
boolean forRemoval,
boolean force)
First checks in contexts for the existence of the node. |
NodeSPI |
wrapNodeForWriting(InvocationContext context,
InternalNode node,
InternalNode parent)
The same as wrapNodeForWriting(org.jboss.cache.InvocationContext, org.jboss.cache.Fqn, boolean, boolean, boolean, boolean, boolean)
except that it takes in an InternalNode instead of a Fqn. |
void |
wrapNodesForReading(InvocationContext ctx,
Collection<Fqn> fqns)
Attempts to provide the context with a set of wrapped nodes based on the Collection of fqns passed in. |
List<Fqn> |
wrapNodesRecursivelyForRemoval(InvocationContext ctx,
Fqn fqn)
Wraps a node and all its subnodes and adds them to the context, acquiring write locks for them all. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public MVCCNodeHelper()
| Method Detail |
|---|
public void injectDependencies(DataContainer dataContainer,
NodeFactory nodeFactory,
LockManager lockManager,
Configuration configuration)
public void start()
public void wrapNodesForReading(InvocationContext ctx,
Collection<Fqn> fqns)
throws InterruptedException
InternalNodes are wrapped using NodeFactory.createWrappedNode(org.jboss.cache.InternalNode, org.jboss.cache.InternalNode)
and as such, null internal nodes are treated according to isolation level used. See NodeFactory.createWrappedNode(org.jboss.cache.InternalNode, org.jboss.cache.InternalNode)
for details on this behaviour.
Note that if the context has the Option.isForceWriteLock() option set, then write locks are
acquired and the node is copied.
ctx - current invocation contextfqns - collection of Fqns. Should not be null.
InterruptedException - if write locks are forced and the lock manager is interrupted.
public NodeSPI wrapNodeForReading(InvocationContext ctx,
Fqn fqn,
boolean putInContext)
throws InterruptedException
wrapNodesForReading(org.jboss.cache.InvocationContext, java.util.Collection) except
that this version takes a single Fqn parameter to wrap a single node.
ctx - current invocation contextfqn - fqn to fetch and wrapputInContext -
InterruptedException - if write locks are forced and the lock manager is interrupted.
public ReadCommittedNode wrapNodeForWriting(InvocationContext context,
Fqn fqn,
boolean lockForWriting,
boolean createIfAbsent,
boolean includeInvalidNodes,
boolean forRemoval,
boolean force)
throws InterruptedException
context - invocation contextfqn - to retrievelockForWriting - if true, a lock will be acquired.createIfAbsent - if true, will be created if absent.includeInvalidNodes - if true, invalid nodes are included.forRemoval - if true, the parent may also be locked if locking parents for removal is necessary.force - if true, will force the write lock even if the node is null.
InterruptedException - if interrupted
public NodeSPI wrapNodeForWriting(InvocationContext context,
InternalNode node,
InternalNode parent)
throws InterruptedException
wrapNodeForWriting(org.jboss.cache.InvocationContext, org.jboss.cache.Fqn, boolean, boolean, boolean, boolean, boolean)
except that it takes in an InternalNode instead of a Fqn. Saves on a lookup.
Also assumes that the node exists, and hence will not be created.
context - invocation contextnode - node to wrap
InterruptedException - if interrupted
public List<Fqn> wrapNodesRecursivelyForRemoval(InvocationContext ctx,
Fqn fqn)
throws InterruptedException
ctx - contextfqn - fqn to wrap
InterruptedException - if the lock manager is interrupted.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||