]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/jaeger-client-cpp/src/jaegertracing/Tag.h
2 * Copyright (c) 2017 Uber Technologies, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef JAEGERTRACING_TAG_H
18 #define JAEGERTRACING_TAG_H
20 #include "jaegertracing/Compilers.h"
24 #include <opentracing/string_view.h>
25 #include <opentracing/value.h>
26 #include <opentracing/variant/variant.hpp>
29 namespace jaegertracing
{
36 using ValueType
= opentracing::Value
;
38 template <typename ValueArg
>
39 Tag(const std::string
& key
, ValueArg
&& value
)
41 , _value(std::forward
<ValueArg
>(value
))
45 template <typename ValueArg
>
46 Tag(const std::pair
<std::string
, ValueArg
>& tag_pair
)
47 : _key(tag_pair
.first
)
48 , _value(tag_pair
.second
)
52 bool operator==(const Tag
& rhs
) const
54 return _key
== rhs
._key
&& _value
== rhs
._value
;
57 const std::string
& key() const { return _key
; }
59 const ValueType
& value() const { return _value
; }
61 void thrift(thrift::Tag
& tag
) const;
68 } // namespace jaegertracing
70 #endif // JAEGERTRACING_TAG_H