/
scope.go
56 lines (43 loc) · 1.44 KB
/
scope.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package gocb
// Scope represents a single scope within a bucket.
type Scope struct {
scopeName string
bucket *Bucket
timeoutsConfig TimeoutsConfig
transcoder Transcoder
retryStrategyWrapper *retryStrategyWrapper
tracer RequestTracer
meter *meterWrapper
useMutationTokens bool
getKvProvider func() (kvProvider, error)
getQueryProvider func() (queryProvider, error)
getAnalyticsProvider func() (analyticsProvider, error)
}
func newScope(bucket *Bucket, scopeName string) *Scope {
return &Scope{
scopeName: scopeName,
bucket: bucket,
timeoutsConfig: bucket.timeoutsConfig,
transcoder: bucket.transcoder,
retryStrategyWrapper: bucket.retryStrategyWrapper,
tracer: bucket.tracer,
meter: bucket.meter,
useMutationTokens: bucket.useMutationTokens,
getKvProvider: bucket.getKvProvider,
getQueryProvider: bucket.getQueryProvider,
getAnalyticsProvider: bucket.getAnalyticsProvider,
}
}
// Name returns the name of the scope.
func (s *Scope) Name() string {
return s.scopeName
}
// BucketName returns the name of the bucket to which this collection belongs.
// UNCOMMITTED: This API may change in the future.
func (s *Scope) BucketName() string {
return s.bucket.Name()
}
// Collection returns an instance of a collection.
func (s *Scope) Collection(collectionName string) *Collection {
return newCollection(s, collectionName)
}