MultiUseResourceManager ⇐ BaseClass
The MultiUseResourceManager provides a mechanism to create and manage resources that can be shared among multiple holders. It ensures that the resource is created when at least one holder exists and disposed only when all holders release it.
Use Case
var backdropManager = new MultiUseResourceManager({
listen: {
'constructResource': function() {
$(document.body).addClass('backdrop');
},
'disposeResource': function() {
$(document.body).removeClass('backdrop');
}
}
});
// 1. Using IDs
var holderId = backdropManager.hold();
// then somewhere
backdropManager.release(holderId);
// 2. Using a holder object
backdropManager.hold(this);
// then somewhere, note that the same object reference must be provided
backdropManager.release(this);
// 3. Using a holder identifier
backdropManager.hold(this.cid);
// then somewhere, note that the same identifier must be provided
backdropManager.release(this.cid);
Extends: BaseClass
Properties
multiUseResourceManager.counter : number
Holders counter tracking the number of current resource holders.
Kind: instance property of MultiUseResourceManager Access: protected
multiUseResourceManager.isCreated : boolean
Indicates whether the resource has been created.
Kind: instance property of MultiUseResourceManager
multiUseResourceManager.holders : Array
Array containing the identifiers of current resource holders.
Kind: instance property of MultiUseResourceManager
Constructor
multiUseResourceManager.constructor()
Kind: instance method of MultiUseResourceManager
Methods
multiUseResourceManager.hold(holder) ⇒ *
Registers a holder and creates the resource if needed.
Kind: instance method of MultiUseResourceManager Returns: * - the holder identifier
Param |
Type |
Description |
|---|---|---|
holder |
* |
Identifier of the holder (object, ID, or reference) |
multiUseResourceManager.release(id)
Releases a holder and disposes the resource if no holders remain.
Kind: instance method of MultiUseResourceManager
Param |
Type |
Description |
|---|---|---|
id |
* |
Identifier of the holder to release |
multiUseResourceManager.isReleased(id) ⇒ boolean
Returns true if the specified holder has already released the resource.
Kind: instance method of MultiUseResourceManager
Param |
Type |
Description |
|---|---|---|
id |
* |
Identifier of the holder |
multiUseResourceManager.checkState()
Checks the current state of the resource, creating or disposing it if necessary.
Kind: instance method of MultiUseResourceManager Access: protected
multiUseResourceManager.dispose()
Forces disposal of the resource and clears all holders.
Kind: instance method of MultiUseResourceManager