diff options
Diffstat (limited to 'Swiften/Network/HostAddress.h')
-rw-r--r-- | Swiften/Network/HostAddress.h | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/Swiften/Network/HostAddress.h b/Swiften/Network/HostAddress.h index 57c34f0..e4ddffb 100644 --- a/Swiften/Network/HostAddress.h +++ b/Swiften/Network/HostAddress.h @@ -1,34 +1,38 @@ /* - * Copyright (c) 2010-2013 Isode Limited. + * Copyright (c) 2010-2016 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 isValid() const; + bool isLocalhost() const; + + static boost::optional<HostAddress> fromString(const std::string& addressString); + + private: + boost::asio::ip::address address_; + }; } |