new Accumulable(initialValue, param)
A data type that can be accumulated, ie has an commutative and associative "add" operation,
but where the result type, `R`, may be different from the element type being added, `T`.
You must define how to add data, and how to merge two of these together. For some data types,
such as a counter, these might be the same operation. In that case, you can use the simpler
Accumulator. They won't always be the same, though -- e.g., imagine you are
accumulating a set. You will add items to the set, and you will union two sets together.
Parameters:
Name | Type | Description |
---|---|---|
initialValue |
object | initial value of accumulator |
param |
module:eclairjs.AccumulableParam | helper object defining how to add elements |
- Source:
Methods
add(term)
Add more data to this accumulator / accumulable
Parameters:
Name | Type | Description |
---|---|---|
term |
object | the data to add |
- Source:
localValue() → {object}
Get the current value of this accumulator from within a task.
This is NOT the global value of the accumulator. To get the global value after a
completed operation on the dataset, call `value`.
The typical use of this method is to directly mutate the local value, eg., to add
an element to a Set.
- Source:
Returns:
- Type
- object
merge(term)
Merge two accumulable objects together
Normally, a user will not want to use this version, but will instead call `add`.
Parameters:
Name | Type | Description |
---|---|---|
term |
object | the other `R` that will get merged with this |
- Source:
setValue(newValue)
Set the accumulator's value; only allowed on master
Parameters:
Name | Type | Description |
---|---|---|
newValue |
object |
- Source:
toString() → {string}
- Source:
Returns:
- Type
- string
value() → {object}
Access the accumulator's current value; only allowed on master.
- Source:
Returns:
- Type
- object