8 #ifndef PXR_BASE_TRACE_EVENT_CONTAINER_H
9 #define PXR_BASE_TRACE_EVENT_CONTAINER_H
38 static _Node* New(
size_t capacity);
42 static void DestroyList(_Node *head);
45 static void Join(_Node *lhs, _Node *rhs);
48 bool IsFull()
const {
return _end == _sentinel; }
51 const char *p =
reinterpret_cast<const char *
>(
this);
53 return reinterpret_cast<const TraceEvent *
>(p);
60 _Node *GetPrevNode() {
64 const _Node *GetPrevNode()
const {
68 _Node *GetNextNode() {
72 const _Node *GetNextNode()
const {
76 void ClaimEventEntry() {
127 return _event == other._event;
160 if (_event == _node->end() && _node->GetNextNode()) {
161 _node = _node->GetNextNode();
162 _event = _node->begin();
167 if (_event == _node->begin()) {
168 _node = _node->GetPrevNode();
169 _event = _node->end();
200 template <
class... Args>
204 _back->ClaimEventEntry();
205 if (_back->IsFull()) {
212 return const_iterator(_front, _front ? _front->begin() :
nullptr);
242 size_t _blockSizeBytes;
247 #endif // PXR_BASE_TRACE_EVENT_CONTAINER_H
TraceEventContainer()
Constructor.
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++()