-/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
inline std::ostream& operator<<(std::ostream& os, PajeEventType event)
{
- return os << static_cast<std::underlying_type<PajeEventType>::type>(event);
+ return os << static_cast<std::underlying_type_t<PajeEventType>>(event);
}
class PajeEvent {
Container* container_;
Type* type_;
-public:
static xbt::signal<void(PajeEvent&)> on_creation;
static xbt::signal<void(PajeEvent const&)> on_destruction;
+public:
+ static void on_creation_cb(const std::function<void(PajeEvent&)>& cb) { on_creation.connect(cb); }
+ static void on_destruction_cb(const std::function<void(PajeEvent const&)>& cb) { on_destruction.connect(cb); }
+
double timestamp_;
PajeEventType eventType_;
std::stringstream stream_;
#endif
std::unique_ptr<TIData> extra_;
-public:
static xbt::signal<void(StateEvent const&)> on_destruction;
+
+public:
+ static void on_destruction_cb(const std::function<void(StateEvent const&)>& cb) { on_destruction.connect(cb); }
StateEvent(Container* container, Type* type, PajeEventType event_type, EntityValue* value, TIData* extra);
~StateEvent() override { on_destruction(*this); }
bool has_extra() const { return extra_ != nullptr; }
Container* endpoint_;
std::string value_;
std::string key_;
- int size_ = -1;
+ size_t size_;
public:
LinkEvent(Container* container, Type* type, PajeEventType event_type, Container* sourceContainer,
- const std::string& value, const std::string& key, int size)
- : PajeEvent(container, type, SIMIX_get_clock(), event_type)
+ const std::string& value, const std::string& key, size_t size = static_cast<size_t>(-1))
+ : PajeEvent(container, type, simgrid_get_clock(), event_type)
, endpoint_(sourceContainer)
, value_(value)
, key_(key)