-
Notifications
You must be signed in to change notification settings - Fork 1
/
SecondarySamplingDecisions.java
67 lines (55 loc) · 2.16 KB
/
SecondarySamplingDecisions.java
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
57
58
59
60
61
62
63
64
65
66
67
/*
* Copyright 2019-2020 The OpenZipkin Authors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package brave.secondary_sampling;
import brave.internal.extra.MapExtra;
import brave.internal.extra.MapExtraFactory;
import java.util.Map;
final class SecondarySamplingDecisions extends
MapExtra<SecondarySamplingState, Boolean, SecondarySamplingDecisions, SecondarySamplingDecisions.Factory>
implements SecondaryProvisioner.Callback {
static final Factory FACTORY = new FactoryBuilder().maxDynamicEntries(32).build();
static final class FactoryBuilder extends
MapExtraFactory.Builder<SecondarySamplingState, Boolean, SecondarySamplingDecisions, Factory, FactoryBuilder> {
@Override protected Factory build() {
return new Factory(this);
}
}
static final class Factory extends
MapExtraFactory<SecondarySamplingState, Boolean, SecondarySamplingDecisions, Factory> {
Factory(FactoryBuilder builder) {
super(builder);
}
@Override protected SecondarySamplingDecisions create() {
return new SecondarySamplingDecisions(this);
}
}
SecondarySamplingDecisions(Factory factory) {
super(factory);
}
@Override public void addSamplingState(SecondarySamplingState state, boolean sampled) {
if (get(state) == null) put(state, sampled);
}
@Override protected boolean isEmpty() {
return super.isEmpty();
}
@Override protected Boolean get(SecondarySamplingState key) { // exposed for tests
return super.get(key);
}
@Override protected Map<SecondarySamplingState, Boolean> asReadOnlyMap() {
return super.asReadOnlyMap();
}
boolean sampledLocal() {
return asReadOnlyMap().containsValue(true);
}
}