SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

kodo.runtime
Class SingleJVMExclusiveLockManager

java.lang.Object
  |
  +--kodo.runtime.AbstractLockManager
        |
        +--kodo.runtime.SingleJVMExclusiveLockManager
All Implemented Interfaces:
com.solarmetric.util.Closeable, LockManager

public class SingleJVMExclusiveLockManager
extends AbstractLockManager

An exclusive write single-JVM lock manager.


Fields inherited from class kodo.runtime.AbstractLockManager
log, pm
 
Constructor Summary
SingleJVMExclusiveLockManager()
           
 
Method Summary
 void endTransaction()
          Release all the locks held by this PersistenceManager.
 int getLockLevel(KodoStateManager sm)
          Return the lock level of the specified instance, or KodoPersistenceManager.LOCK_NONE if not locked.
 void lock(KodoStateManager sm, int level, int timeout, Object context)
          Obtain a lock on the specified object.
protected  oswego.cs.dl.util.concurrent.Sync newLock()
          Create a new lock.
 void release(KodoStateManager sm)
          Release the lock on the given object.
 
Methods inherited from class kodo.runtime.AbstractLockManager
beginTransaction, close, getPersistenceManager, lockAll, setPersistenceManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SingleJVMExclusiveLockManager

public SingleJVMExclusiveLockManager()
Method Detail

release

public void release(KodoStateManager sm)
Description copied from interface: LockManager
Release the lock on the given object. This method will be called automatically for each state manager with a lock object set on transaction completion, just before the call to LockManager.endTransaction(). The lock manager should null the state manager's lock object. Note that some state manager may be garbage collected during a transaction; thus lock managers cannot rely on this method being called for every state manager.
Following copied from interface: kodo.runtime.LockManager
See Also:
KodoStateManager.setLock(java.lang.Object)

getLockLevel

public int getLockLevel(KodoStateManager sm)
Description copied from interface: LockManager
Return the lock level of the specified instance, or KodoPersistenceManager.LOCK_NONE if not locked.

lock

public void lock(KodoStateManager sm,
                 int level,
                 int timeout,
                 Object context)
Description copied from interface: LockManager
Obtain a lock on the specified object. This method may be called when a user explicitly locks an object, and is also called automatically for every object accessed during a transaction. The implementation must track already-locked objects, and must be optimized to return quickly when the given object does not need additional locking. The lock manager might use the state manager's lock object for bookkeeping information.
Following copied from interface: kodo.runtime.LockManager
Parameters:
sm - the object to lock
level - one of the lock constants defined in KodoPersistenceManager, or a custom level
timeout - the timeout in milliseconds, or a negative number for no timeout
context - the context information passed from the back end store manager to the persistence manager, if any; lock managers specific to a certain back end may be able to take advantage of this; others should ignore it
Throws:
LockTimedOutException - if a lock cannot be obtained in the given number of milliseconds
See Also:
KodoStateManager.setLock(java.lang.Object)

newLock

protected oswego.cs.dl.util.concurrent.Sync newLock()
Create a new lock.

endTransaction

public void endTransaction()
Release all the locks held by this PersistenceManager.
Overrides:
endTransaction in class AbstractLockManager

SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.