OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_BASE_IP_ADDRESS_NET_H_ | 5 #ifndef NET_BASE_IP_ADDRESS_NET_H_ |
6 #define NET_BASE_IP_ADDRESS_NET_H_ | 6 #define NET_BASE_IP_ADDRESS_NET_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 88 |
89 // Returns an IPAddress instance representing the 127.0.0.1 address. | 89 // Returns an IPAddress instance representing the 127.0.0.1 address. |
90 static IPAddress IPv4Localhost(); | 90 static IPAddress IPv4Localhost(); |
91 | 91 |
92 // Returns an IPAddress instance representing the ::1 address. | 92 // Returns an IPAddress instance representing the ::1 address. |
93 static IPAddress IPv6Localhost(); | 93 static IPAddress IPv6Localhost(); |
94 | 94 |
95 // Returns an IPAddress made up of |num_zero_bytes| zeros. | 95 // Returns an IPAddress made up of |num_zero_bytes| zeros. |
96 static IPAddress AllZeros(size_t num_zero_bytes); | 96 static IPAddress AllZeros(size_t num_zero_bytes); |
97 | 97 |
| 98 // Returns an IPAddress instance representing the 0.0.0.0 address. |
| 99 static IPAddress IPv4AllZeros(); |
| 100 |
| 101 // Returns an IPAddress instance representing the :: address. |
| 102 static IPAddress IPv6AllZeros(); |
| 103 |
98 bool operator==(const IPAddress& that) const; | 104 bool operator==(const IPAddress& that) const; |
99 bool operator!=(const IPAddress& that) const; | 105 bool operator!=(const IPAddress& that) const; |
100 bool operator<(const IPAddress& that) const; | 106 bool operator<(const IPAddress& that) const; |
101 | 107 |
102 private: | 108 private: |
103 // IPv4 addresses will have length kIPv4AddressSize, whereas IPv6 address | 109 // IPv4 addresses will have length kIPv4AddressSize, whereas IPv6 address |
104 // will have length kIPv6AddressSize. | 110 // will have length kIPv6AddressSize. |
105 std::vector<uint8_t> ip_address_; | 111 std::vector<uint8_t> ip_address_; |
106 | 112 |
107 // This class is copyable and assignable. | 113 // This class is copyable and assignable. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 template <size_t N> | 161 template <size_t N> |
156 bool IPAddressStartsWith(const IPAddress& address, const uint8_t (&prefix)[N]) { | 162 bool IPAddressStartsWith(const IPAddress& address, const uint8_t (&prefix)[N]) { |
157 if (address.size() < N) | 163 if (address.size() < N) |
158 return false; | 164 return false; |
159 return std::equal(prefix, prefix + N, address.bytes().begin()); | 165 return std::equal(prefix, prefix + N, address.bytes().begin()); |
160 } | 166 } |
161 | 167 |
162 } // namespace net | 168 } // namespace net |
163 | 169 |
164 #endif // NET_BASE_IP_ADDRESS_NET_H_ | 170 #endif // NET_BASE_IP_ADDRESS_NET_H_ |
OLD | NEW |