diff options
Diffstat (limited to 'Swiften/Network/HostAddress.h')
-rw-r--r-- | Swiften/Network/HostAddress.h | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/Swiften/Network/HostAddress.h b/Swiften/Network/HostAddress.h index c62239b..7a22cf4 100644 --- a/Swiften/Network/HostAddress.h +++ b/Swiften/Network/HostAddress.h @@ -1,34 +1,42 @@ /* - * Copyright (c) 2010-2013 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2018 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ + #pragma once #include <string> + #include <boost/asio/ip/address.hpp> +#include <boost/optional.hpp> #include <Swiften/Base/API.h> namespace Swift { - class SWIFTEN_API HostAddress { - public: - HostAddress(); - HostAddress(const std::string&); - HostAddress(const unsigned char* address, size_t length); - HostAddress(const boost::asio::ip::address& address); - - std::string toString() const; - boost::asio::ip::address getRawAddress() const; - - bool operator==(const HostAddress& o) const { - return address_ == o.address_; - } - - bool isValid() const; - bool isLocalhost() const; - - private: - boost::asio::ip::address address_; - }; + class SWIFTEN_API HostAddress { + public: + HostAddress(); + HostAddress(const unsigned char* address, size_t length); + HostAddress(const boost::asio::ip::address& address); + + std::string toString() const; + boost::asio::ip::address getRawAddress() const; + + bool operator==(const HostAddress& o) const { + return address_ == o.address_; + } + + bool operator<(const HostAddress& o) const { + return address_ < o.address_; + } + + bool isValid() const; + bool isLocalhost() const; + + static boost::optional<HostAddress> fromString(const std::string& addressString); + + private: + boost::asio::ip::address address_; + }; } |