@dolittle/sdk.projections
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
43 lines • 2.88 kB
TypeScript
import { Logger } from 'winston';
import { IServiceProvider } from '@dolittle/sdk.dependencyinversion';
import { IEventTypes } from '@dolittle/sdk.events';
import { ExecutionContext } from '@dolittle/sdk.execution';
import { Internal } from '@dolittle/sdk.events.processing';
import { Cancellation } from '@dolittle/sdk.resilience';
import { IReverseCallClient } from '@dolittle/sdk.services';
import { Failure } from '@dolittle/contracts/Protobuf/Failure_pb';
import { ProcessorFailure, RetryProcessingState } from '@dolittle/contracts/Runtime/Events.Processing/Processors_pb';
import { ProjectionsClient } from '@dolittle/contracts/Runtime/Events.Processing/Projections_grpc_pb';
import { ProjectionRegistrationRequest, ProjectionRegistrationResponse, ProjectionRequest, ProjectionResponse } from '@dolittle/contracts/Runtime/Events.Processing/Projections_pb';
import { IProjection } from '../IProjection';
import { ProjectionId } from '../ProjectionId';
/**
* Represents an implementation of {@link Internal.EventProcessor} for {@link Projection}.
* @template T The type of the projection read model.
*/
export declare class ProjectionProcessor<T> extends Internal.EventProcessor<ProjectionId, ProjectionsClient, ProjectionRegistrationRequest, ProjectionRegistrationResponse, ProjectionRequest, ProjectionResponse> {
private _projection;
private _eventTypes;
/**
* Initializes a new instance of {@link ProjectionProcessor}.
* @param {IProjection<T>} _projection - The projection.
* @param {IEventTypes} _eventTypes - The registered event types for this projection.
*/
constructor(_projection: IProjection<T>, _eventTypes: IEventTypes);
/** @inheritdoc */
protected get registerArguments(): ProjectionRegistrationRequest;
private setKeySelector;
private createCopiesSpecification;
private createMongoDBPropertyConversions;
/** @inheritdoc */
protected createClient(client: ProjectionsClient, registerArguments: ProjectionRegistrationRequest, callback: (request: ProjectionRequest, executionContext: ExecutionContext) => Promise<ProjectionResponse>, executionContext: ExecutionContext, pingInterval: number, logger: Logger, cancellation: Cancellation): IReverseCallClient<ProjectionRegistrationResponse>;
/** @inheritdoc */
protected getFailureFromRegisterResponse(response: ProjectionRegistrationResponse): Failure | undefined;
/** @inheritdoc */
protected getRetryProcessingStateFromRequest(request: ProjectionRequest): RetryProcessingState | undefined;
/** @inheritdoc */
protected createResponseFromFailure(failure: ProcessorFailure): ProjectionResponse;
/** @inheritdoc */
protected handle(request: ProjectionRequest, executionContext: ExecutionContext, services: IServiceProvider, logger: Logger): Promise<ProjectionResponse>;
}
//# sourceMappingURL=ProjectionProcessor.d.ts.map