Table of Contents

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

TSossObject

Type of the SOSS object.

TAccumulator

Type 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

moduleName string

Name of the API module.

operationId string

ID of the API operation.

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

stream Stream

The 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

context ApiProcessingContext<TSossObject>

The API processing context.

accumulator TAccumulator

The accumulated result.

sossObject TSossObject

The SOSS object to evaluate.

parameter byte[]

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 sossObject should 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

accumulator1 TAccumulator

The first accumulated result.

accumulator2 TAccumulator

The 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

accumulator TAccumulator

The accumulated result to serialize.

stream Stream

The stream to write the serialized accumulated result to.