1 // Copyright 2017, OpenCensus Authors
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
22 // FromContext returns the tag map stored in the context.
23 func FromContext(ctx context.Context) *Map {
24 // The returned tag map shouldn't be mutated.
25 ts := ctx.Value(mapCtxKey)
32 // NewContext creates a new context with the given tag map.
33 // To propagate a tag map to downstream methods and downstream RPCs, add a tag map
34 // to the current context. NewContext will return a copy of the current context,
35 // and put the tag map into the returned one.
36 // If there is already a tag map in the current context, it will be replaced with m.
37 func NewContext(ctx context.Context, m *Map) context.Context {
38 return context.WithValue(ctx, mapCtxKey, m)
43 var mapCtxKey = ctxKey{}