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
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>
128TF_API std::vector<std::string>
136#define TF_DESCRIBE_SCOPE(...) \
137 TfScopeDescription __scope_description__ \
138 (Tf_DescribeScopeFormat(__VA_ARGS__), TF_CALL_CONTEXT); \
140template <
typename... Args>
142Tf_DescribeScopeFormat(
const char* fmt, Args&&... args) {
150Tf_DescribeScopeFormat(
const char* fmt) {
return fmt; }
153Tf_DescribeScopeFormat(std::string&& fmt) {
return std::move(fmt); }
155inline const std::string&
156Tf_DescribeScopeFormat(
const std::string& fmt) {
return fmt; }
158PXR_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.
TF_API std::vector< std::string > TfGetCurrentScopeDescriptionStack()
Return a copy of the current description stack for the "main" thread as identified by ArchGetMainThre...
TF_API std::vector< std::string > TfGetThisThreadScopeDescriptionStack()
Return a copy of the current description stack for the current thread of execution as a vector of str...
Definitions of basic string utilities in tf.