class PajeEvent {
Container* container_;
Type* type_;
-protected:
- Container* get_container() { return container_; }
public:
+ static xbt::signal<void(PajeEvent&)> on_creation;
+ static xbt::signal<void(PajeEvent&)> on_destruction;
+
double timestamp_;
e_event_type eventType_;
std::stringstream stream_;
PajeEvent(Container* container, Type* type, double timestamp, e_event_type eventType);
- virtual ~PajeEvent() = default;
- virtual void print();
+ virtual ~PajeEvent();
+
+ Container* get_container() const { return container_; }
+ Type* get_type() const { return type_; }
+
+ virtual void print() = 0;
void insert_into_buffer();
};
: PajeEvent::PajeEvent(container, type, timestamp, event_type), value_(value)
{
}
- void print() override;
+ void print() override { stream_ << " " << value_; }
};
class StateEvent : public PajeEvent {
std::unique_ptr<TIData> extra_;
public:
+ static xbt::signal<void(StateEvent&)> on_destruction;
StateEvent(Container* container, Type* type, e_event_type event_type, EntityValue* value, TIData* extra);
+ ~StateEvent() { on_destruction(*this); }
+ bool has_extra() { return extra_ != nullptr; }
void print() override;
};
public:
NewEvent(double timestamp, Container* container, Type* type, EntityValue* value)
- : simgrid::instr::PajeEvent::PajeEvent(container, type, timestamp, PAJE_NewEvent), value(value)
+ : PajeEvent::PajeEvent(container, type, timestamp, PAJE_NewEvent), value(value)
{
}
void print() override;
};
-}
-}
+} // namespace instr
+} // namespace simgrid
#endif