8#ifndef PXR_BASE_TRACE_REPORTER_BASE_H
9#define PXR_BASE_TRACE_REPORTER_BASE_H
13#include "pxr/base/trace/api.h"
14#include "pxr/base/trace/collectionNotice.h"
15#include "pxr/base/trace/collection.h"
16#include "pxr/base/trace/reporterDataSourceBase.h"
20#include <tbb/concurrent_vector.h>
24PXR_NAMESPACE_OPEN_SCOPE
39 using ThisPtr = TraceReporterBasePtr;
40 using ThisRefPtr = TraceReporterBaseRefPtr;
41 using CollectionPtr = std::shared_ptr<TraceCollection>;
42 using DataSourcePtr = std::unique_ptr<TraceReporterDataSourceBase>;
64 DataSourcePtr _dataSource;
65 tbb::concurrent_vector<CollectionPtr> _processedCollections;
68PXR_NAMESPACE_CLOSE_SCOPE
Enable a concrete base class for use with TfRefPtr.
Enable a concrete base class for use with TfWeakPtr.
This class is a base class for report implementations.
TRACE_API void _Update()
Gets the latest data from the TraceCollector singleton and processes all collections that have been r...
virtual TRACE_API ~TraceReporterBase()
Destructor.
TRACE_API TraceReporterBase(DataSourcePtr dataSource)
Constructor taking ownership of dataSource.
virtual void _ProcessCollection(const CollectionPtr &)=0
Called once per collection from _Update()
TRACE_API void _Clear()
Removes all references to TraceCollections.
TRACE_API bool SerializeProcessedCollections(std::ostream &ostr) const
Write all collections that were processed by this reporter to ostr.
Standard pointer typedefs.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.