24#ifndef PXR_BASE_TF_SCOPE_DESCRIPTION_H
25#define PXR_BASE_TF_SCOPE_DESCRIPTION_H
31#include "pxr/base/tf/api.h"
37PXR_NAMESPACE_OPEN_SCOPE
60 TfCallContext
const &context = TfCallContext());
67 TfCallContext
const &context = TfCallContext());
74 TfCallContext
const &context = TfCallContext());
99 friend inline char const *
101 return d->_description;
103 friend inline TfCallContext
const &
109 inline void _Pop()
const;
111 std::optional<std::string> _ownedString;
112 char const *_description;
113 TfCallContext _context;
122TF_API std::vector<std::string>
123TfGetCurrentScopeDescriptionStack();
128TF_API std::vector<std::string>
129TfGetThisThreadScopeDescriptionStack();
133#define TF_DESCRIBE_SCOPE(...) \
134 TfScopeDescription __scope_description__ \
135 (Tf_DescribeScopeFormat(__VA_ARGS__), TF_CALL_CONTEXT); \
137template <
typename... Args>
139Tf_DescribeScopeFormat(
const char* fmt, Args&&... args) {
147Tf_DescribeScopeFormat(
const char* fmt) {
return fmt; }
150Tf_DescribeScopeFormat(std::string&& fmt) {
return std::move(fmt); }
152inline const std::string&
153Tf_DescribeScopeFormat(
const std::string& fmt) {
return fmt; }
155PXR_NAMESPACE_CLOSE_SCOPE
Functions for recording call locations.
This class is used to provide high-level descriptions about scopes of execution that could possibly b...
TF_API void SetDescription(std::string &&description)
Replace the description stack entry for this scope description.
TF_API TfScopeDescription(char const *description, TfCallContext const &context=TfCallContext())
Construct with a description.
TF_API TfScopeDescription(std::string const &description, TfCallContext const &context=TfCallContext())
Construct with a description.
TF_API void SetDescription(char const *description)
Replace the description stack entry for this scope description.
TF_API void SetDescription(std::string const &description)
Replace the description stack entry for this scope description.
TF_API TfScopeDescription(std::string &&description, TfCallContext const &context=TfCallContext())
Construct with a description.
TF_API ~TfScopeDescription()
Destructor.
TF_API std::string TfStringPrintf(const char *fmt,...)
Returns a string formed by a printf()-like specification.
Definitions of basic string utilities in tf.