github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/processors/query/interface.go (about)

     1  /*
     2   * Copyright (c) 2021-present unTill Pro, Ltd.
     3   *
     4   * * @author Michael Saigachenko
     5   */
     6  
     7  package queryprocessor
     8  
     9  import (
    10  	"context"
    11  
    12  	"github.com/voedger/voedger/pkg/appdef"
    13  	"github.com/voedger/voedger/pkg/appparts"
    14  	"github.com/voedger/voedger/pkg/iauthnz"
    15  	"github.com/voedger/voedger/pkg/iprocbus"
    16  	"github.com/voedger/voedger/pkg/istructs"
    17  	"github.com/voedger/voedger/pkg/itokens"
    18  	imetrics "github.com/voedger/voedger/pkg/metrics"
    19  	"github.com/voedger/voedger/pkg/pipeline"
    20  	"github.com/voedger/voedger/pkg/utils/federation"
    21  )
    22  
    23  // RowsProcessorFactory is the function for building pipeline from query params and row meta
    24  // The pipeline is used to process data fetched by QueryHandler
    25  // TODO In my opinion we have to remove it from export
    26  type RowsProcessorFactory func(ctx context.Context, appDef appdef.IAppDef, state istructs.IState,
    27  	params IQueryParams, resultMeta appdef.IType, rs IResultSenderClosable, metrics IMetrics) pipeline.IAsyncPipeline
    28  
    29  type ServiceFactory func(serviceChannel iprocbus.ServiceChannel, resultSenderClosableFactory ResultSenderClosableFactory,
    30  	appParts appparts.IAppPartitions, maxPrepareQueries int, metrics imetrics.IMetrics, vvm string,
    31  	authn iauthnz.IAuthenticator, authz iauthnz.IAuthorizer, itokens itokens.ITokens, federation federation.IFederation) pipeline.IService