receiver/opencensusreceiver/options.go (25 lines of code) (raw):
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package opencensusreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver"
import (
"go.opentelemetry.io/collector/config/configgrpc"
)
// ocOption interface defines for configuration settings to be applied to receivers.
//
// withReceiver applies the configuration to the given receiver.
type ocOption interface {
withReceiver(*ocReceiver)
}
type corsOrigins struct {
origins []string
}
var _ ocOption = (*corsOrigins)(nil)
func (co *corsOrigins) withReceiver(ocr *ocReceiver) {
ocr.corsOrigins = co.origins
}
// withCorsOrigins is an option to specify the allowed origins to enable writing
// HTTP/JSON requests to the grpc-gateway adapter using CORS.
func withCorsOrigins(origins []string) ocOption {
return &corsOrigins{origins: origins}
}
type grpcServerSettings configgrpc.ServerConfig
func withGRPCServerSettings(settings configgrpc.ServerConfig) ocOption {
gsvOpts := grpcServerSettings(settings)
return gsvOpts
}
func (gsvo grpcServerSettings) withReceiver(ocr *ocReceiver) {
ocr.grpcServerSettings = configgrpc.ServerConfig(gsvo)
}