/* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class UnixNetworkEnvironment : public NetworkEnvironment { class UnixNetworkInterface : public NetworkInterface { public: typedef boost::shared_ptr ref; public: UnixNetworkInterface(std::string name) : name(name), loopback(false) { } std::vector getAddresses() { return addresses; } std::string getName() { return name; } bool isLoopback() { return loopback; } private: void addHostAddress(HostAddress address) { addresses.push_back(address); } void setLoopback(bool loopback) { this->loopback = loopback; } private: friend class UnixNetworkEnvironment; std::vector addresses; std::string name; InterfaceType type; bool loopback; }; public: std::vector getNetworkInterfaces(); }; }