* That link is used for all communications within the zone.
*/
class XBT_PRIVATE WifiZone : public RoutedZone {
+ resource::LinkImpl* wifi_link_ = nullptr; // Representing the air media (there is no such thing in NS-3)
+ NetPoint* access_point_ = nullptr; // Zone's gateway to the external world
+
+ void do_seal() override;
+
public:
- explicit WifiZone(NetZoneImpl* father, const std::string& name, resource::NetworkModel* netmodel);
+ using RoutedZone::RoutedZone;
WifiZone(const WifiZone&) = delete;
WifiZone& operator=(const WifiZone) = delete;
- ~WifiZone() override = default;
- void seal() override;
- void get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs* into, double* latency) override;
- s4u::Link* create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
- s4u::Link::SharingPolicy policy,
- const std::unordered_map<std::string, std::string>* props) override;
- NetPoint* get_access_point() {return access_point_;}
-
-private:
- resource::LinkImpl* wifi_link_ = nullptr; // Representing the air media (there is no such thing in NS-3)
- NetPoint* access_point_ = nullptr; // Zone's gateway to the external world
+ void get_local_route(const NetPoint* src, const NetPoint* dst, Route* into, double* latency) override;
+ s4u::Link* create_link(const std::string& name, const std::vector<double>& bandwidths) override;
+ NetPoint* get_access_point() const { return access_point_; }
};
} // namespace routing
} // namespace kernel