7#ifndef PXR_BASE_TF_SCOPE_DESCRIPTION_H
8#define PXR_BASE_TF_SCOPE_DESCRIPTION_H
14#include "pxr/base/tf/api.h"
20PXR_NAMESPACE_OPEN_SCOPE
43 TfCallContext
const &context = TfCallContext());
50 TfCallContext
const &context = TfCallContext());
57 TfCallContext
const &context = TfCallContext());
82 friend inline char const *
84 return d->_description;
86 friend inline TfCallContext
const &
92 inline void _Pop()
const;
94 std::optional<std::string> _ownedString;
95 char const *_description;
96 TfCallContext _context;
105TF_API std::vector<std::string>
106TfGetCurrentScopeDescriptionStack();
111TF_API std::vector<std::string>
112TfGetThisThreadScopeDescriptionStack();
116#define TF_DESCRIBE_SCOPE(...) \
117 TfScopeDescription __scope_description__ \
118 (Tf_DescribeScopeFormat(__VA_ARGS__), TF_CALL_CONTEXT); \
120template <
typename... Args>
122Tf_DescribeScopeFormat(
const char* fmt, Args&&... args) {
130Tf_DescribeScopeFormat(
const char* fmt) {
return fmt; }
133Tf_DescribeScopeFormat(std::string&& fmt) {
return std::move(fmt); }
135inline const std::string&
136Tf_DescribeScopeFormat(
const std::string& fmt) {
return fmt; }
138PXR_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.