Phosphor
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
trace_context.h
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
#pragma once
19
20
#include <memory>
21
#include <string>
22
#include <unordered_map>
23
24
#include "phosphor/platform/core.h"
25
26
namespace
phosphor
{
27
28
// Forward declare
29
class
TraceBuffer;
30
39
class
PHOSPHOR_API
TraceContext
{
40
public
:
41
using
ThreadNamesMap = std::unordered_map<uint64_t, std::string>;
42
43
~
TraceContext
();
44
45
TraceContext
(std::unique_ptr<TraceBuffer>&& buffer);
46
47
TraceContext
(std::unique_ptr<TraceBuffer>&& buffer,
48
const
ThreadNamesMap& _thread_names);
49
50
TraceContext
(
TraceContext
&& other);
51
52
TraceContext
& operator=(
TraceContext
&& other);
53
54
const
TraceBuffer
* getBuffer()
const
{
55
return
trace_buffer.get();
56
}
57
61
TraceBuffer
*
getBuffer
() {
62
return
trace_buffer.get();
63
}
64
68
const
ThreadNamesMap&
getThreadNames
()
const
{
69
return
thread_names;
70
}
71
72
protected
:
73
77
void
addThreadName(uint64_t
id
,
const
std::string& name);
78
79
private
:
83
std::unique_ptr<TraceBuffer> trace_buffer;
84
89
ThreadNamesMap thread_names;
90
};
91
92
}
phosphor::TraceContext
Definition:
trace_context.h:39
phosphor::TraceBuffer
Definition:
trace_buffer.h:148
phosphor
Definition:
category_registry.h:32
phosphor::TraceContext::getBuffer
TraceBuffer * getBuffer()
Definition:
trace_context.h:61
phosphor::TraceContext::getThreadNames
const ThreadNamesMap & getThreadNames() const
Definition:
trace_context.h:68
include
phosphor
trace_context.h
Generated by
1.8.11