Index: net/base/address_list.h |
diff --git a/net/base/address_list.h b/net/base/address_list.h |
index 93255e789856da936b1ff7e199f430e278629d7b..c87add8d5eac52ab1432966620dcf0b1a3d2791a 100644 |
--- a/net/base/address_list.h |
+++ b/net/base/address_list.h |
@@ -21,10 +21,10 @@ namespace net { |
class IPAddress; |
-class NET_EXPORT AddressList |
- : NON_EXPORTED_BASE(private std::vector<IPEndPoint>) { |
+class NET_EXPORT AddressList { |
public: |
AddressList(); |
+ AddressList(const AddressList&); |
~AddressList(); |
// Creates an address list for a single IP literal. |
@@ -33,9 +33,8 @@ class NET_EXPORT AddressList |
static AddressList CreateFromIPAddress(const IPAddress& address, |
uint16_t port); |
- static AddressList CreateFromIPAddressList( |
- const IPAddressList& addresses, |
- const std::string& canonical_name); |
+ static AddressList CreateFromIPAddressList(const IPAddressList& addresses, |
+ const std::string& canonical_name); |
// Copies the data from |head| and the chained list into an AddressList. |
static AddressList CreateFromAddrinfo(const struct addrinfo* head); |
@@ -44,9 +43,7 @@ class NET_EXPORT AddressList |
static AddressList CopyWithPort(const AddressList& list, uint16_t port); |
// TODO(szym): Remove all three. http://crbug.com/126134 |
- const std::string& canonical_name() const { |
- return canonical_name_; |
- } |
+ const std::string& canonical_name() const { return canonical_name_; } |
void set_canonical_name(const std::string& canonical_name) { |
canonical_name_ = canonical_name; |
@@ -60,26 +57,33 @@ class NET_EXPORT AddressList |
// |this| is. |
NetLog::ParametersCallback CreateNetLogCallback() const; |
- // Exposed methods from std::vector. |
- using std::vector<IPEndPoint>::size; |
- using std::vector<IPEndPoint>::empty; |
- using std::vector<IPEndPoint>::clear; |
- using std::vector<IPEndPoint>::reserve; |
- using std::vector<IPEndPoint>::capacity; |
- using std::vector<IPEndPoint>::operator[]; |
- using std::vector<IPEndPoint>::front; |
- using std::vector<IPEndPoint>::back; |
- using std::vector<IPEndPoint>::push_back; |
- using std::vector<IPEndPoint>::insert; |
- using std::vector<IPEndPoint>::erase; |
- using std::vector<IPEndPoint>::iterator; |
- using std::vector<IPEndPoint>::const_iterator; |
- using std::vector<IPEndPoint>::begin; |
- using std::vector<IPEndPoint>::end; |
- using std::vector<IPEndPoint>::rbegin; |
- using std::vector<IPEndPoint>::rend; |
+ using iterator = std::vector<IPEndPoint>::iterator; |
+ using const_iterator = std::vector<IPEndPoint>::const_iterator; |
+ |
+ size_t size() const { return endpoints_.size(); } |
+ bool empty() const { return endpoints_.empty(); } |
+ void clear() { endpoints_.clear(); } |
+ void reserve(size_t count) { endpoints_.reserve(count); } |
+ size_t capacity() const { return endpoints_.capacity(); } |
+ IPEndPoint& operator[](size_t index) { return endpoints_[index]; } |
+ const IPEndPoint& operator[](size_t index) const { return endpoints_[index]; } |
+ IPEndPoint& front() { return endpoints_.front(); } |
+ const IPEndPoint& front() const { return endpoints_.front(); } |
+ IPEndPoint& back() { return endpoints_.back(); } |
+ const IPEndPoint& back() const { return endpoints_.back(); } |
+ void push_back(const IPEndPoint& val) { endpoints_.push_back(val); } |
+ |
+ template <typename InputIt> |
+ void insert(iterator pos, InputIt first, InputIt last) { |
+ endpoints_.insert(pos, first, last); |
+ } |
+ iterator begin() { return endpoints_.begin(); } |
+ const_iterator begin() const { return endpoints_.begin(); } |
+ iterator end() { return endpoints_.end(); } |
+ const_iterator end() const { return endpoints_.end(); } |
private: |
+ std::vector<IPEndPoint> endpoints_; |
// TODO(szym): Remove. http://crbug.com/126134 |
std::string canonical_name_; |
}; |