25 #ifndef PXR_BASE_TRACE_EVENT_CONTAINER_H
26 #define PXR_BASE_TRACE_EVENT_CONTAINER_H
55 static _Node* New(
size_t capacity);
59 static void DestroyList(_Node *
head);
62 static void Join(_Node *lhs, _Node *rhs);
65 bool IsFull()
const {
return _end == _sentinel; }
68 const char *p =
reinterpret_cast<const char *
>(
this);
70 return reinterpret_cast<const TraceEvent *
>(p);
77 _Node *GetPrevNode() {
81 const _Node *GetPrevNode()
const {
85 _Node *GetNextNode() {
89 const _Node *GetNextNode()
const {
93 void ClaimEventEntry() {
144 return _event == other._event;
177 if (_event == _node->end() && _node->GetNextNode()) {
178 _node = _node->GetNextNode();
179 _event = _node->begin();
184 if (_event == _node->begin()) {
185 _node = _node->GetPrevNode();
186 _event = _node->end();
217 template <
class... Args>
221 _back->ClaimEventEntry();
222 if (_back->IsFull()) {
229 return const_iterator(_front, _front ? _front->begin() :
nullptr);
259 size_t _blockSizeBytes;
264 #endif // PXR_BASE_TRACE_EVENT_CONTAINER_H
TraceEventContainer()
Constructor.
UT_StringArray JOINTS head
const_iterator end() const
const_iterator & operator--()
**But if you need a result
TraceEventContainer & operator=(TraceEventContainer &&)
Move Assignment.
const_reverse_iterator rbegin() const
TRACE_API ~TraceEventContainer()
std::reverse_iterator< const_iterator > const_reverse_iterator
TraceEvent & emplace_back(Args &&...args)
TRACE_API void Append(TraceEventContainer &&other)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
**If you just want to fire and args
bool operator!=(const const_iterator &other) const
const_iterator begin() const
bool operator==(const const_iterator &other) const
const_reverse_iterator rend() const
std::bidirectional_iterator_tag iterator_category
const_iterator & operator++()