Generic CA handler plug.
A handler combines custom application methods with private state.
CAF binds methods to the handler object, enabling user code to
access CA state using this
, i.e., a traditional, non-functional,
object abstraction.
- Source:
Extends
Members
__ca_isHandler__ :boolean
- Source:
Run-time type information.
Type:
- boolean
scratch :Object
- Source:
Contains anything, but it is not guaranteed to be preserved across message invocations.
Scratch is used for caching since in most cases it will be preserved across messages.
It can also help debugging, since its value is never rolled back.
Type:
- Object
state :Object
- Source:
JSON-serializable representation of a CA's private state.
The contents of this variable are always checkpointed before any state externalization.
The key __ca_version__
refers to the schema version for
this.state
.
Type:
- Object
Methods
__ca_pulse__(cb)
- Source:
Enables autonomous computation by processing pulse messages that CAF periodically sends to all CAs.
Parameters:
Name | Type | Description |
---|---|---|
cb |
cbType | A callback to continue after pulse. |
__ca_upgrade__(newVersion, cb)
- Source:
Versions the checkpointed state of a resumed CA so that is consistent
with its expected version props.$.stateVersion
, set in file ca.json
.
A resumed CA always calls this function once, just before it starts processing messages.
The default policy is to use semantic versioning, and automatically
upgrade the version if newVersion
satifies ^oldVersion
(first
non-zero number cannot change, but the next ones can).
Otherwise, we return an error in the callback.
It is expected that applications will override this function to upgrade between non-compatible versions.
Parameters:
Name | Type | Description |
---|---|---|
newVersion |
string | The new version label after upgrading the state. |
cb |
cbType | A callback to continue after versioning the state. |
__external_ca_destroy__(dataopt, cb)
- Source:
Destroys this CA permanently by deleting its checkpointed state.
Destroyed CAs cannot be resumed and input/output queues are immediately discarded.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
data |
Object |
<optional> |
An optional hint on how to perform the shutdown. |
cb |
cbType | A callback function to continue after clean-up. |
__external_ca_multi__(multiArgs, cb)
- Source:
A method that aggregates multiple method invocations in a single message. The failure of one of them will abort changes for all of them, as if they were all executed in one transaction.
SECURITY WARNING: *** Granting access to this method means that ANY method of this CA can be called ***
type of invocationType is {method: string, meta : Array.
Parameters:
Name | Type | Description |
---|---|---|
multiArgs |
Array.<invocationType> | An array |
cb |
cbType | A callback to return the results of the last method. |
__external_ca_touch__(cb)
- Source:
A dummy method that ensures a CA is active.
The 'Touch' method should not have any side-effects and is present in all CAs.
It also returns in the callback metadata of the methods (an object with keys the method names, and values and array with the argument names)
Touch
makes latency of the first command in a session more
predictable. It can also guarantee that pulse
methods are regularly
invoked after a failure, even without active clients.
Parameters:
Name | Type | Description |
---|---|---|
cb |
cbType | A callback to continue after 'touch'. It returns an object with CA methods metadata, where a key is a method name and a value is an array with arguments names. |