- fprintf(file, " node [shape=box, style=filled]\n");
- fprintf(file, " node [width=.3, height=.3, style=filled, color=skyblue]\n\n");
+ if (TRACE_actor_is_enabled()) {
+ s4u::Actor::on_creation_cb(on_actor_creation);
+ s4u::Actor::on_destruction_cb([](s4u::Actor const& actor) {
+ auto container = Container::by_name_or_null(instr_pid(actor));
+ if (container != nullptr)
+ container->remove_from_parent();
+ });
+ s4u::Actor::on_suspend_cb([](s4u::Actor const& actor) {
+ Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("suspend");
+ });
+ s4u::Actor::on_resume_cb(
+ [](s4u::Actor const& actor) { Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); });
+ s4u::Actor::on_sleep_cb([](s4u::Actor const& actor) {
+ Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("sleep");
+ });
+ s4u::Actor::on_wake_up_cb(
+ [](s4u::Actor const& actor) { Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); });
+ s4u::Exec::on_start_cb([](s4u::Exec const&) {
+ Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->push_event("execute");
+ });
+ s4u::Activity::on_completion_cb([](const s4u::Activity&) {
+ Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->pop_event();
+ });
+ s4u::Comm::on_send_cb([](s4u::Comm const&) {
+ Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->push_event("send");
+ });
+ s4u::Comm::on_recv_cb([](s4u::Comm const&) {
+ Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->push_event("receive");
+ });
+ s4u::Actor::on_host_change_cb(on_actor_host_change);
+ }