+ std::vector<s4u::Host*> get_all_hosts() const;
+ int get_host_count() const;
+
+ /** @brief Make a host within that NetZone */
+ s4u::Host* create_host(const std::string& name, const std::vector<double>& speed_per_pstate, int core_amount);
+ /** @brief Make a link within that NetZone */
+ virtual s4u::Link* create_link(const std::string& name, const std::vector<double>& bandwidths,
+ s4u::Link::SharingPolicy policy);
+ /** @brief Creates a new route in this NetZone */
+ virtual void add_bypass_route(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst,
+ std::vector<resource::LinkImpl*>& link_list, bool symmetrical);
+
+ /** @brief Seal your netzone once you're done adding content, and before routing stuff through it */
+ virtual void seal() { sealed_ = true; };
+ virtual int add_component(kernel::routing::NetPoint* elm); /* A host, a router or a netzone, whatever */
+ virtual void add_route(kernel::routing::NetPoint* src, kernel::routing::NetPoint* dst,
+ kernel::routing::NetPoint* gw_src, kernel::routing::NetPoint* gw_dst,
+ std::vector<kernel::resource::LinkImpl*>& link_list, bool symmetrical);