1 /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3 *     Copyright 2016 Couchbase, Inc
4 *
5 *   Licensed under the Apache License, Version 2.0 (the "License");
6 *   you may not use this file except in compliance with the License.
7 *   You may obtain a copy of the License at
8 *
9 *       http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *   Unless required by applicable law or agreed to in writing, software
12 *   distributed under the License is distributed on an "AS IS" BASIS,
13 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *   See the License for the specific language governing permissions and
15 *   limitations under the License.
16 */
17 
18 #include "phosphor/trace_context.h"
19 
20 #include "phosphor/platform/core.h"
21 #include "phosphor/trace_buffer.h"
22 
23 namespace phosphor {
24 
25     /*
26     * TraceContext implementation
27     */
28 
29     TraceContext::~TraceContext() = default;
30 
TraceContext(std::unique_ptr<TraceBuffer>&& buffer)31     TraceContext::TraceContext(std::unique_ptr<TraceBuffer>&& buffer)
32         : trace_buffer(std::move(buffer)) {
33     }
34 
TraceContext(std::unique_ptr<TraceBuffer>&& buffer, const ThreadNamesMap& _thread_names)35     TraceContext::TraceContext(std::unique_ptr<TraceBuffer>&& buffer,
36                                const ThreadNamesMap& _thread_names)
37         : trace_buffer(std::move(buffer)),
38           thread_names(_thread_names) {
39     }
40 
TraceContext(TraceContext&& other)41     TraceContext::TraceContext(TraceContext&& other)
42         : trace_buffer(std::move(other.trace_buffer)),
43         thread_names(std::move(other.thread_names)) {
44     }
45 
operator =(TraceContext&& other)46     TraceContext& TraceContext::operator=(TraceContext&& other) {
47         trace_buffer = std::move(other.trace_buffer);
48         thread_names = std::move(other.thread_names);
49         return *this;
50     }
51 
addThreadName(uint64_t id, const std::string& name)52     void TraceContext::addThreadName(uint64_t id, const std::string& name) {
53         thread_names.emplace(id, name);
54     }
55 }
56