20 #ifndef COM_UBUNTU_CONNECTIVITY_NETWORKING_LINK
21 #define COM_UBUNTU_CONNECTIVITY_NETWORKING_LINK
23 #include <core/property.h>
27 namespace connectivity {
28 namespace networking {
30 #ifndef CONNECTIVITY_CPP_EXPORT
31 #define CONNECTIVITY_CPP_EXPORT __attribute ((visibility ("default")))
38 typedef std::shared_ptr<Link>
Ptr;
41 virtual ~
Link() =
default;
43 Link& operator=(
const Link&) =
delete;
44 bool operator==(
const Link&)
const =
delete;
80 has_monetary_costs = 1 << 0,
86 is_volume_limited = 1 << 1,
92 is_bandwidth_limited = 1 << 2
96 virtual void enable() = 0;
99 virtual void disable() = 0;
102 virtual Type type()
const = 0;
105 virtual const core::Property<std::uint32_t>& characteristics() = 0;
108 virtual const core::Property<Status>& status() = 0;
111 typedef unsigned int Id;
114 virtual Id id()
const = 0;
117 virtual std::string name()
const = 0;
#define CONNECTIVITY_CPP_EXPORT
Characteristics
Characteristics of the link.
std::shared_ptr< Link > Ptr