summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Network/HostAddress.h')
-rw-r--r--Swiften/Network/HostAddress.h46
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_;
+ };
}