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> 41 PXR_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;
74 TRACE_API std::vector<CollectionPtr>
ConsumeData()
override;
83 std::function<bool()> _accept;
84 tbb::concurrent_queue<CollectionPtr> _pendingCollections;
87 PXR_NAMESPACE_CLOSE_SCOPE
89 #endif // PXR_BASE_TRACE_REPORTER_DATA_SOURCE_COLLECTOR_H #define TF_DECLARE_WEAK_PTRS(type)
Define standard weak pointer types.
Standard pointer typedefs.
This class is a base class for TraceReporterBase data sources.
A TfNotice that is sent when the TraceCollector creates a TraceCollection.
static ThisRefPtr New()
Creates a new TraceReporterDataSourceCollector.
TRACE_API std::vector< CollectionPtr > ConsumeData() override
Returns the next TraceCollections which need to be processed.
This class is an implementation of TraceReporterDataSourceBase which retrieves TraceCollections from ...
TRACE_API void Clear() override
Removes all references to TraceCollections.
Enable a concrete base class for use with TfWeakPtr.
static ThisRefPtr New(std::function< bool()> accept)
Creates a new TraceReporterDataSourceCollector which will only listen to the TraceCollectionAvailable...