Package com.arjuna.ats.txoj
Class Lock
java.lang.Object
com.arjuna.ats.arjuna.StateManager
com.arjuna.ats.txoj.Lock
Instances of this class (or derived user classes) are used when trying to set
a lock. The default implementation provides a single-write/multiple-reader
policy. However, by overridding the appropriate methods, other, type-specific
concurrency control locks can be implemented.
- Since:
- JTS 1.0.
- Version:
- $Id: Lock.java 2342 2006-03-30 13:06:17Z $
- Author:
- Mark Little (mark@arjuna.com)
-
Field Summary
Fields inherited from class com.arjuna.ats.arjuna.StateManager
modifyingActions, objectModel, objectUid, synchronizationLock, usingActions
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
changeHierarchy
(ActionHierarchy newOwner) Change the transaction hierarchy associated with the lock to that provided.boolean
conflictsWith
(Lock otherLock) Implementation of Lock conflict check.boolean
Are the two locks equal?boolean
Overrides Object.equals()void
finalize()
General clean up as Lock is deleted.final ActionHierarchy
final Uid
final int
protected Lock
getLink()
Get the next lock in the chain.final int
boolean
Does this lock imply a modification of the object it is applied to? For example, a READ lock would return false, but a WRITE lock would return true.void
print
(PrintWriter strm) functions inherited from StateManagerfinal void
Propagate the lock.boolean
restore_state
(InputObjectState os, int ot) Carefully restore the state of a Lock.boolean
save_state
(OutputObjectState os, int ot) Save the state of a lock object.protected void
Set the next lock in the chain.toString()
Overrides Object.toString()type()
Overrides StateManager.type()Methods inherited from class com.arjuna.ats.arjuna.StateManager
activate, activate, cleanup, createLists, deactivate, deactivate, deactivate, destroy, disable, forgetAction, get_uid, getCreationTimeMillis, getMutex, getObjectModel, getStore, getStoreRoot, loadObjectState, lockMutex, modified, objectType, packHeader, persist, rememberAction, setStatus, setupStore, setupStore, setupStore, status, terminate, tryLockMutex, unlockMutex, unpackHeader
-
Constructor Details
-
Lock
public Lock()Create a new lock. -
Lock
public Lock(int lm) Create a new Lock object and initialise it. Mode is based upon argument. The value of BasicAction.Current determines the values of the remainder of the fields. If there is no action running the owner field is set to be the application uid created when the application starts. -
Lock
This is used when re-initialising a Lock after retrieval from the object store.
-
-
Method Details
-
finalize
General clean up as Lock is deleted. -
getLockMode
public final int getLockMode()- Returns:
- the mode this lock is currently in, e.g.,
LockMode.READ
.
-
getCurrentOwner
- Returns:
- the identity of the lock's current owner (the transaction id).
-
getAllOwners
- Returns:
- the transaction hierarchy associated with this lock.
-
getCurrentStatus
public final int getCurrentStatus()- Returns:
- the lock's current status.
-
changeHierarchy
Change the transaction hierarchy associated with the lock to that provided. -
propagate
public final void propagate()Propagate the lock. -
modifiesObject
public boolean modifiesObject()Does this lock imply a modification of the object it is applied to? For example, a READ lock would return false, but a WRITE lock would return true.- Returns:
true
if this lock implies the object's state will be modified,false
otherwise.
-
conflictsWith
Implementation of Lock conflict check. Returns TRUE if there is conflict FALSE otherwise. Does not take account of relationship in the atomic action hierarchy since this is a function of LockManager.- Returns:
true
if this lock conflicts with the parameter,false
otherwise.
-
equals
Overrides Object.equals() -
equals
Are the two locks equal?- Returns:
true
if the locks are equal,false
otherwise.
-
toString
Overrides Object.toString() -
print
functions inherited from StateManager- Overrides:
print
in classStateManager
-
restore_state
Carefully restore the state of a Lock.- Overrides:
restore_state
in classStateManager
- Returns:
true
if successful,false
otherwise.
-
save_state
Save the state of a lock object.- Overrides:
save_state
in classStateManager
- Returns:
true
if successful,false
otherwise.
-
type
Overrides StateManager.type()- Overrides:
type
in classStateManager
-
getLink
Get the next lock in the chain. -
setLink
Set the next lock in the chain.
-