25#ifndef PXR_BASE_TRACE_REPORTER_DATA_SOURCE_COLLECTOR_H
26#define PXR_BASE_TRACE_REPORTER_DATA_SOURCE_COLLECTOR_H
30#include "pxr/base/trace/api.h"
31#include "pxr/base/trace/collection.h"
32#include "pxr/base/trace/collectionNotice.h"
33#include "pxr/base/trace/reporterDataSourceBase.h"
37#include <tbb/concurrent_queue.h>
41PXR_NAMESPACE_OPEN_SCOPE
55 using ThisPtr = TraceReporterDataSourceCollectorPtr;
56 using ThisRefPtr = std::unique_ptr<This>;
59 static ThisRefPtr
New() {
60 return ThisRefPtr(
new This());
66 static ThisRefPtr
New(std::function<
bool()> accept) {
67 return ThisRefPtr(
new This(std::move(accept)));
71 TRACE_API
void Clear()
override;
83 std::function<bool()> _accept;
84 tbb::concurrent_queue<CollectionPtr> _pendingCollections;
87PXR_NAMESPACE_CLOSE_SCOPE
Enable a concrete base class for use with TfWeakPtr.
A TfNotice that is sent when the TraceCollector creates a TraceCollection.
This class is a base class for TraceReporterBase data sources.
This class is an implementation of TraceReporterDataSourceBase which retrieves TraceCollections from ...
TRACE_API std::vector< CollectionPtr > ConsumeData() override
Returns the next TraceCollections which need to be processed.
static ThisRefPtr New()
Creates a new TraceReporterDataSourceCollector.
TRACE_API void Clear() override
Removes all references to TraceCollections.
static ThisRefPtr New(std::function< bool()> accept)
Creates a new TraceReporterDataSourceCollector which will only listen to the TraceCollectionAvailable...
Standard pointer typedefs.
#define TF_DECLARE_WEAK_PTRS(type)
Define standard weak pointer types.