ProtectedconstructorOptionalisInternalConstructor: booleanFinds and returns event sample based on time it intersects with and depth in event tree.
Identifier of thread within whose tree this method should search for event sample.
Time that intersects with event sample that is being searched for.
Depth of event sample in event sample tree consistent with depth given in
Event sample that was found, or nullptr if no such event sample was found.
Finds and returns all event samples that intersect with given time range.
Identifier of thread within whose tree this method should search for event samples.
Begining of the time range that is being searched for event samples.
End of the time range that is being searched for event samples.
Collection of event sample that were matched by parameters.
Returns indexed attribute based on its identifier.
Identifier of the attribute that should be returned.
Found attribute, with given attribute identifier, or nullptr if such attribute was not inserted into this index.
Returns indexed event based on its identifier.
Identifier of the event that should be returned.
Found event, with given event identifier, or nullptr if such event was not inserted into this index.
Finds and returns event sample based on its identifier.
Identifier of event sample that should be searched for and returned.
Indexed event sample with given sample identifier, or nullptr if no such sample was inserted into the index.
Returns the time range of event samples.
Returns the earliest frame that was recorded - the frame with the lowest frame id.
First frame contained in this ProfilerIndex.
Helper function that aggregates event sample data for flamegraph rendering for given thread. Returns vector of flamegraph entries that should be visible in given time range.
Thread that should be shown in given flamegraph.
First time that should be visible in the flamegraph. All event samples that end before this time will be skipped.
Last time that should be visible in the flamegraph. All event samples that begin after this time will be skipped.
Vector of flamegraph entries on given thread that intersect given time range.
Finds frame by frame identifier.
Identifier of frame to find.
Profiler frame data for found frame or nullptr.
Returns vector of all frames in this index.
Vector of frame data entries.
Returns the latest frame that was recorded - the frame with the highest frame id.
Last frame contained in this ProfilerIndex.
Finds the stat based on its database identifier.
Stat database identifier.
Stat with given identifier or nullptr if not found.
Finds a stat group with given name.
Name of the stat group to find.
Returns pointer to the required group or nullptr if the group does not exist.
This returns all stat groups that are defined in profiler stat metadata. Stats that don't have a specified group will have one automatically created.
All stat groups registered in profiler index.
Returns all stats that are known to the ProfilerIndex.
Vector of all stats.
Returns the time range of stats.
Returns indexed thread based on its identifier.
Identifier of the thread that should be returned.
Found thread or nullptr if such thread was not inserted into this index.
Returns indexed data of all threads that were inserted into this index. These can be used to access event sample trees.
Vector of indexed threads.
Returns the time range of data in this index.
ReadonlyonCalled when some data are added or removed. This is called after all other change callbacks to inform about a change, without specifying what exactly the change is.
ReadonlyonCalled when all data are removed from the index.
ReadonlyonCalled when new profiler event samples are inserted into the profiler index.
ReadonlyonCalled when new profiler frames are inserted into the profiler index.
ReadonlyonCalled when new stat values are inserted into the profiler index. The event has one parameter and it is the time range of newly inserted stat points. This time range is guaranteed to be higher than time of any other time point that is already in the profiler index.
The ProfilerSubframeIndex class acts as a way to organize data for flamegraph visualization and other UI visualizations for profiler data. It stores data captured by profiler runtime in an organized matter that is useful for visualization and other user interactions and querying. This for example computes relationships between event samples and computes aggregate data for threads. When serializing data, we only need to serialize the primary data in ProfilerDatabase - all additional information in ProfilerIndex are deduced from that primary data.