+/** Start the host if it is off */
+void Host::turnOn()
+{
+ simgrid::simix::kernel(std::bind(SIMIX_host_on, this));
+}
+
+/** Stop the host if it is on */
+void Host::turnOff()
+{
+ simgrid::simix::simcall<void>(SIMCALL_HOST_OFF, this);
+}
+
+bool Host::isOn() {
+ return pimpl_cpu->isOn();
+}
+bool Host::isOff() {
+ return ! pimpl_cpu->isOn();
+}
+
+
+/** Get the properties assigned to a host */
+xbt_dict_t Host::getProperties()
+{
+ return simgrid::simix::kernel(std::bind(&simgrid::surf::Host::getProperties, this->extension(simgrid::surf::Host::EXTENSION_ID)));
+}
+
+/** Get the processes attached to the host */
+xbt_swag_t Host::getProcessList()
+{
+ return simgrid::simix::kernel([&]() {
+ return ((smx_host_priv_t)this->extension(SIMIX_HOST_LEVEL))->process_list;
+ });
+}
+
+/** Get the peak power of a host */
+double Host::getCurrentPowerPeak()
+{
+ return simgrid::simix::kernel([&] {
+ return this->pimpl_cpu->getCurrentPowerPeak();
+ });
+}
+
+/** Get one power peak (in flops/s) of a host at a given pstate */
+double Host::getPowerPeakAt(int pstate_index)
+{
+ return simgrid::simix::kernel([&] {
+ return this->pimpl_cpu->getPowerPeakAt(pstate_index);
+ });
+}
+
+/** @brief Get the speed of the cpu associated to a host */
+double Host::getSpeed() {
+ return pimpl_cpu->getSpeed(1.0);
+}
+/** @brief Returns the number of core of the processor. */
+int Host::getCoreAmount() {
+ return pimpl_cpu->getCore();
+}
+