%ZHSLIB.PackageManager.Core.LockManager
class %ZHSLIB.PackageManager.Core.LockManager extends %Library.RegisteredObject
Utility to make managing locking/unlocking easier in more complex settings. Usage pattern:- Create an instance of this class at the beginning of a method.
- Call the Lock() and (optionally) Unlock() methods.
- When the object goes out of scope, remaining locks are automatically released with the correct flags.
Property Inventory (Including Private)
Method Inventory (Including Private)
- %OnClose()
- %OnNew()
- Lock()
- LockClassDefinition()
- LockClassId()
- LockClassesRecursive()
- MergeTo()
- Unlock()
- UnlockAll()
- UnlockClassId()
Properties (Including Private)
property Cache [ Private , MultiDimensional ];
Map of (,) to lock count
Property methods: CacheDisplayToLogical(), CacheGet(), CacheIsValid(), CacheLogicalToDisplay(), CacheLogicalToOdbc(), CacheNormalize(), CacheSet()
property ImmediateReleaseOnClose as %Boolean [ Private ];
If true, locks are released immediately when the instance of this class goes out of scope.
(If not, standard handling for transactions will apply instead.)
Property methods: ImmediateReleaseOnCloseDisplayToLogical(), ImmediateReleaseOnCloseGet(), ImmediateReleaseOnCloseIsValid(), ImmediateReleaseOnCloseLogicalToDisplay(), ImmediateReleaseOnCloseNormalize(), ImmediateReleaseOnCloseSet()
property OIDCache [ Private , MultiDimensional ];
Map of (,) to lock count
Property methods: OIDCacheDisplayToLogical(), OIDCacheGet(), OIDCacheIsValid(), OIDCacheLogicalToDisplay(), OIDCacheLogicalToOdbc(), OIDCacheNormalize(), OIDCacheSet()
Methods (Including Private)
private method %OnClose() as %Status [ Language = objectscript ]
Performs an immediate unlock
Set pImmediateRelease to 0 to keep locks in an instance of this class
until the end of the current transaction even once the instance goes out of scope.
method Lock(pGlobalName As %String, pFlags As %String = "", pTimeout As %Integer = $$$LockTimeout) as %Status [ Language = objectscript ]
method LockClassDefinition(pClass As %String, pShared As %Boolean = 0, pTimeout As %Integer = 0) as %Status [ Language = objectscript ]
method LockClassId(pClassName As %Dictionary.Classname, pID As %String, pShared As %Boolean = 0, pTimeout As %Integer) as %Status [ Language = objectscript ]
classmethod LockClassesRecursive(ByRef pLockManager=..%New(), ByRef pClasses, ByRef pSharedLockedClasses) as %Status [ Language = objectscript ]
method MergeTo(pTargetLockManager As %ZHSLIB.PackageManager.Core.LockManager) [ Language = objectscript ]
method Unlock(pGlobalName As %String, pFlags As %String = "", pImmediate As %Boolean = 0, pUpdateCache As %Boolean = 1) [ Language = objectscript ]
method UnlockClassId(pClassName As %Dictionary.Classname, pID As %String, pShared As %Boolean = 0, pImmediate As %Boolean = 0) [ Language = objectscript ]
Inherited Members
Inherited Methods (Including Private)
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %ConstructCloneInit()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OnAddToSaveSet()
- %OnConstructClone()
- %OnValidateObject()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()