+ virtual const s4u::Host* get_iface() const { return &piface_; }
+ virtual s4u::Host* get_iface() { return &piface_; }
+
+ /** Retrieves the name of that host as a C++ string */
+ xbt::string const& get_name() const { return name_; }
+ /** Retrieves the name of that host as a C string */
+ const char* get_cname() const { return name_.c_str(); }
+
+ routing::NetZoneImpl* get_englobing_zone() const { return englobing_zone_; }
+ /** @brief Set the NetZone in which this Host is included */
+ HostImpl* set_englobing_zone(routing::NetZoneImpl* netzone_p);
+
+ void turn_on() const;
+ void turn_off(const actor::ActorImpl* issuer);
+ std::vector<s4u::ActorPtr> get_all_actors();
+ size_t get_actor_count() const;
+ void add_actor(actor::ActorImpl* actor) { actor_list_.push_back(*actor); }
+ void remove_actor(actor::ActorImpl* actor) { xbt::intrusive_erase(actor_list_, *actor); }
+ void add_actor_at_boot(actor::ProcessArg* arg) { actors_at_boot_.emplace_back(arg); }
+
+ virtual void seal();
+
+ template <class F> void foreach_actor(F function)
+ {
+ for (auto& actor : actor_list_)
+ function(actor);
+ }
+};
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid