/
options.go
41 lines (32 loc) · 1.16 KB
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// 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)
}