Class ReduceApiProcessor<TSossObject, TAccumulator>
- Namespace
- Scaleout.Modules.Abstractions
- Assembly
- Scaleout.Modules.Abstractions.dll
Base class for implementing a reduce API processor for a specific SOSS object type.
public abstract class ReduceApiProcessor<TSossObject, TAccumulator>
Type Parameters
TSossObjectType of the SOSS object.
TAccumulatorType of the accumulated result.
- Inheritance
-
ReduceApiProcessor<TSossObject, TAccumulator>
- Inherited Members
Remarks
Reduce API processors are used to perform parallel operations on SOSS objects in an API module, where the results are accumulated into a single result.
Methods
AccumulatorFactory(string, string)
Abstract. Initializes an instance of an accumulated result.
public abstract TAccumulator AccumulatorFactory(string moduleName, string operationId)
Parameters
Returns
- TAccumulator
An instance of the accumulated result.
DeserializeAccumulator(Stream)
Abstract. Deserializes an accumulated result from a stream.
public abstract TAccumulator DeserializeAccumulator(Stream stream)
Parameters
streamStreamThe stream containing the serialized accumulated result.
Returns
- TAccumulator
The deserialized accumulated result.
Evaluate(ApiProcessingContext<TSossObject>, TAccumulator, TSossObject, byte[])
Abstract. Evaluates a SOSS object and updates the accumulated result.
public abstract EvalResult<TAccumulator> Evaluate(ApiProcessingContext<TSossObject> context, TAccumulator accumulator, TSossObject sossObject, byte[] parameter)
Parameters
contextApiProcessingContext<TSossObject>The API processing context.
accumulatorTAccumulatorThe accumulated result.
sossObjectTSossObjectThe SOSS object to evaluate.
parameterbyte[]The optional parameter for the API operation
Returns
- EvalResult<TAccumulator>
An EvalResult<TAccumulator> instance containing the evaluated result and a ProcessingResult enum indicating whether modifications to the
sossObjectshould be persisted or whether the object should be removed.
Reduce(TAccumulator, TAccumulator)
Abstract. Merges two accumulated results into a single result object.
public abstract TAccumulator Reduce(TAccumulator accumulator1, TAccumulator accumulator2)
Parameters
accumulator1TAccumulatorThe first accumulated result.
accumulator2TAccumulatorThe second accumulated result.
Returns
- TAccumulator
The merged accumulated result.
SerializeAccumulator(TAccumulator, Stream)
Abstract. Serializes an accumulated result to a stream.
public abstract void SerializeAccumulator(TAccumulator accumulator, Stream stream)
Parameters
accumulatorTAccumulatorThe accumulated result to serialize.
streamStreamThe stream to write the serialized accumulated result to.