ExecPtr setPriority(double priority);
ExecPtr setHost(Host * host);
+ Host* getHost() { return host_; }
double getRemains() override;
double getRemainingRatio();
/* FIXME: protect me */
simgrid::vm::VirtualMachineImpl* pimpl_vm_ = nullptr;
+
+ static simgrid::xbt::signal<void(s4u::VirtualMachine&)> onCreation;
+ static simgrid::xbt::signal<void(s4u::VirtualMachine&)> onDestruction;
};
}
} // namespace simgrid::s4u
if (not simcalls.empty())
SIMIX_execution_finish(this);
}
+
+/*************
+ * Callbacks *
+ *************/
+simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onCreation;
+simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onDestruction;
#include "src/kernel/activity/ActivityImpl.hpp"
#include "surf/surf.hpp"
+#include "xbt/Extendable.hpp"
namespace simgrid {
namespace kernel {
namespace activity {
-XBT_PUBLIC_CLASS ExecImpl : public ActivityImpl
+XBT_PUBLIC_CLASS ExecImpl : public ActivityImpl, public simgrid::xbt::Extendable<ExecImpl>
{
~ExecImpl() override;
sg_host_t host_ = nullptr;
surf_action_t surfAction_ = nullptr; /* The Surf execution action encapsulated */
surf::Action* timeoutDetector = nullptr;
+ static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCreation;
+ static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onDestruction;
};
}
}
simgrid::simix::kernelImmediate([this, params] { pimpl_vm_->setParams(params); });
}
+/*************
+ * Callbacks *
+ *************/
+simgrid::xbt::signal<void(s4u::VirtualMachine&)> VirtualMachine::onCreation;
+simgrid::xbt::signal<void(s4u::VirtualMachine&)> VirtualMachine::onDestruction;
+
} // namespace simgrid
} // namespace s4u