15#include "sparta/pipeViewer/transaction_structures.hpp"
43 DurationData(
const DataT & dat,
44 sparta::Clock::Cycle duration) :
45 data(dat), duration(duration)
49 sparta::Clock::Cycle duration;
67 const std::string& name,
68 const std::string& group,
70 uint64_t parentid = 0,
71 const std::string & desc =
"DelayedCollectable <manual, no desc>") :
72 Collectable<DataT>(parent, name, group, index, desc)
86 const std::string& name,
87 const DataT * collected_object,
88 uint64_t parentid = 0,
89 const std::string & desc =
"DelayedCollectable <no desc>") :
90 Collectable<DataT>(parent, name, collected_object, parentid, desc)
101 const std::string& name,
102 uint64_t parentid = 0,
103 const std::string & desc =
"DelayedCollectable <manual, no desc>") :
119 void collect(
const DataT & val, sparta::Clock::Cycle delay)
124 ev_collect_.schedule(val, delay);
143 sparta::Clock::Cycle delay,
144 sparta::Clock::Cycle duration)
149 ev_collect_duration_.
preparePayload({val, duration})->schedule(delay);
162 void collectWithDuration_(
const DurationData & dur_dat) {
177 collectWithDuration_, DurationData)};
Implementation of the Collectable class that allows a user to collect an object into an pipeViewer pi...
File that defines the EventSet class.
File that defines the PayloadEvent class.
#define SPARTA_EXPECT_FALSE(x)
A macro for hinting to the compiler a particular condition should be considered most likely false.
#define CREATE_SPARTA_HANDLER_WITH_DATA(clname, meth, dataT)
Class to schedule a Scheduleable in the future with a payload, typed on both the data type and the sc...
ScheduleableHandle preparePayload(const DataT &payload)
Prepare a Scheduleable Payload for scheduling either now or later.
Node in a composite tree representing a sparta Tree item.
bool isCollected() const
Determine whether or not this node has collection turned on or off.
Class used to either manually or auto-collect an Annotation String object in a pipeline database.
void setManualCollection()
Do not perform any automatic collection The SchedulingPhase is ignored.
void collect() override final
void collectWithDuration(const DataT &val, sparta::Clock::Cycle duration)
Explicitly collect a value for the given duration.
EventSet & getEventSet_()
Get a reference to the internal event set.
Class used to record data in pipeline collection, but recorded in a delayed fashion.
DelayedCollectable(sparta::TreeNode *parent, const std::string &name, const DataT *collected_object, uint64_t parentid=0, const std::string &desc="DelayedCollectable <no desc>")
Construct the DelayedCollectable.
void collect(const DataT &val, sparta::Clock::Cycle delay)
Explicitly collect a value in the future.
DelayedCollectable(sparta::TreeNode *parent, const std::string &name, const std::string &group, uint32_t index, uint64_t parentid=0, const std::string &desc="DelayedCollectable <manual, no desc>")
Construct the DelayedCollectable, no data object associated, part of a group.
void collectWithDuration(const DataT &val, sparta::Clock::Cycle delay, sparta::Clock::Cycle duration)
Explicitly collect a value in the future.
DelayedCollectable(sparta::TreeNode *parent, const std::string &name, uint64_t parentid=0, const std::string &desc="DelayedCollectable <manual, no desc>")
Construct the DelayedCollectable, no data object associated.
Macros for handling exponential backoff.