Loading...
Searching...
No Matches
staticKeyData.h
1//
2// Copyright 2018 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7
8#ifndef PXR_BASE_TRACE_STATIC_KEY_DATA_H
9#define PXR_BASE_TRACE_STATIC_KEY_DATA_H
10
11#include "pxr/pxr.h"
12#include "pxr/base/trace/api.h"
13
14#include <cstddef>
15#include <string>
16
17PXR_NAMESPACE_OPEN_SCOPE
18
27public:
33 public:
35 template <size_t N>
36 constexpr StringLiteral(const char(&s)[N]) : str(s) {}
37
39 constexpr StringLiteral() : str(nullptr) {}
40
41 private:
42 const char* str;
43
44 friend class TraceStaticKeyData;
45 };
46
48 constexpr TraceStaticKeyData(const StringLiteral name)
49 : _name(name.str) {}
50
54 const StringLiteral func,
55 const StringLiteral prettyFunc,
56 const StringLiteral name = StringLiteral())
57 : _funcName(func.str)
58 , _prettyFuncName(prettyFunc.str)
59 , _name(name.str) {}
60
62 TRACE_API
63 bool operator == (const TraceStaticKeyData& other) const;
64
65 bool operator != (const TraceStaticKeyData& other) const {
66 return !(*this == other);
67 }
68
70 TRACE_API
71 std::string GetString() const;
72
73private:
75
76 const char* _funcName = nullptr;
77 const char* _prettyFuncName = nullptr;
78 const char* _name = nullptr;
79
80 friend class TraceDynamicKey;
81};
82
83PXR_NAMESPACE_CLOSE_SCOPE
84
85#endif // PXR_BASE_TRACE_STATIC_KEY_DATA_H
This class stores data used to create dynamic keys which can be referenced in TraceEvent instances.
Definition: dynamicKey.h:25
This is a helper class for the constructors of TraceStaticKeyData.
Definition: staticKeyData.h:32
constexpr StringLiteral(const char(&s)[N])
Constructor from string literals.
Definition: staticKeyData.h:36
constexpr StringLiteral()
Default Constructor.
Definition: staticKeyData.h:39
This class holds data necessary to create keys for TraceEvent instances.
Definition: staticKeyData.h:26
constexpr TraceStaticKeyData(const StringLiteral func, const StringLiteral prettyFunc, const StringLiteral name=StringLiteral())
Constructor for a function (func, prettyFunc) and optional scope name.
Definition: staticKeyData.h:53
constexpr TraceStaticKeyData(const StringLiteral name)
Constructor for a name.
Definition: staticKeyData.h:48
TRACE_API bool operator==(const TraceStaticKeyData &other) const
Equality comparison. Inequality is also defined.
TRACE_API std::string GetString() const
Returns the string representation of the key data.