18#ifndef MOTIV_TRACE_HPP
19#define MOTIV_TRACE_HPP
25#include "src/models/communication/Communication.hpp"
26#include "src/models/communication/CollectiveCommunicationEvent.hpp"
28#include "TimedElement.hpp"
42 bool operator()(
const otf2::definition::location_group *l,
const otf2::definition::location_group *r)
const {
43 return l->ref() < r->ref();
88 [[nodiscard]]
virtual otf2::chrono::duration
getRuntime()
const = 0;
99 [[nodiscard]]
virtual Trace*
subtrace(otf2::chrono::duration from, otf2::chrono::duration to) = 0;
A custom range implementation around std::vector<T>s.
A base class for all elements with a start and end time.
Abstract base class for a trace.
virtual Trace * subtrace(otf2::chrono::duration from, otf2::chrono::duration to)=0
Creates a subtrace of the current trace.
virtual otf2::chrono::duration getRuntime() const =0
Returns the runtime of the current trace.
virtual std::map< otf2::definition::location_group *, Range< Slot * >, LocationGroupCmp > getSlots() const =0
Returns a map of slots of the current trace.
virtual Range< CollectiveCommunicationEvent * > getCollectiveCommunications()=0
Returns collective communication events of the current trace.
virtual Range< Communication * > getCommunications()=0
Returns communication objects of the current trace.
A comparator for otf2::definition::location_group objects.
bool operator()(const otf2::definition::location_group *l, const otf2::definition::location_group *r) const
Compares two otf2::definition::location_group objects.