Home > Class Reference > %SYS namespace > %ZHSLIB.PackageManager.Core.LockManager

%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:
  1. Create an instance of this class at the beginning of a method.
  2. Call the Lock() and (optionally) Unlock() methods.
  3. When the object goes out of scope, remaining locks are automatically released with the correct flags.

Property Inventory (Including Private)

Method Inventory (Including Private)

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
private method %OnNew(pImmediateRelease As %Boolean = 1) as %Status [ Language = objectscript ]
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 UnlockAll(pImmediate As %Boolean = 1) as %Status [ 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)