diff options
Diffstat (limited to 'Swiften/Network/NetworkInterface.h')
-rw-r--r-- | Swiften/Network/NetworkInterface.h | 55 |
1 files changed, 35 insertions, 20 deletions
diff --git a/Swiften/Network/NetworkInterface.h b/Swiften/Network/NetworkInterface.h index 062e1f9..6395758 100644 --- a/Swiften/Network/NetworkInterface.h +++ b/Swiften/Network/NetworkInterface.h @@ -7,29 +7,44 @@ #pragma once #include <vector> -#include <boost/shared_ptr.hpp> #include <Swiften/Network/HostAddress.h> namespace Swift { - -class NetworkInterface { -public: - typedef boost::shared_ptr<NetworkInterface> ref; - -public: - enum InterfaceType { - WLAN, - Ethernet, - Mobile, - VPN, + class NetworkInterface { + public: + enum Type { + Unknown, + WLAN, + Ethernet, + Mobile, + VPN, + }; + + public: + NetworkInterface(const std::string& name, bool loopback, Type type = Unknown) : name(name), loopback(loopback), type(type) { + } + + void addAddress(const HostAddress& address) { + addresses.push_back(address); + } + + const std::vector<HostAddress>& getAddresses() const { + return addresses; + } + + const std::string& getName() const { + return name; + } + + bool isLoopback() const { + return loopback; + } + + private: + std::string name; + bool loopback; + Type type; + std::vector<HostAddress> addresses; }; - -public: - virtual ~NetworkInterface() {}; - virtual std::vector<HostAddress> getAddresses() = 0; - virtual std::string getName() = 0; - virtual bool isLoopback() = 0; -}; - } |