Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2989)

Unified Diff: net/base/address_list.h

Issue 2003973002: net::AddressList no longer privately inherits from std::vector (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/base/address_list.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
};
« no previous file with comments | « no previous file | net/base/address_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698