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

Side by Side Diff: net/dns/dns_transaction.cc

Issue 667923003: Standardize usage of virtual/override/final in net/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
« no previous file with comments | « net/dns/dns_test_util.cc ('k') | net/dns/dns_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "net/dns/dns_transaction.h" 5 #include "net/dns/dns_transaction.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 DnsUDPAttempt(unsigned server_index, 134 DnsUDPAttempt(unsigned server_index,
135 scoped_ptr<DnsSession::SocketLease> socket_lease, 135 scoped_ptr<DnsSession::SocketLease> socket_lease,
136 scoped_ptr<DnsQuery> query) 136 scoped_ptr<DnsQuery> query)
137 : DnsAttempt(server_index), 137 : DnsAttempt(server_index),
138 next_state_(STATE_NONE), 138 next_state_(STATE_NONE),
139 received_malformed_response_(false), 139 received_malformed_response_(false),
140 socket_lease_(socket_lease.Pass()), 140 socket_lease_(socket_lease.Pass()),
141 query_(query.Pass()) {} 141 query_(query.Pass()) {}
142 142
143 // DnsAttempt: 143 // DnsAttempt:
144 virtual int Start(const CompletionCallback& callback) override { 144 int Start(const CompletionCallback& callback) override {
145 DCHECK_EQ(STATE_NONE, next_state_); 145 DCHECK_EQ(STATE_NONE, next_state_);
146 callback_ = callback; 146 callback_ = callback;
147 start_time_ = base::TimeTicks::Now(); 147 start_time_ = base::TimeTicks::Now();
148 next_state_ = STATE_SEND_QUERY; 148 next_state_ = STATE_SEND_QUERY;
149 return DoLoop(OK); 149 return DoLoop(OK);
150 } 150 }
151 151
152 virtual const DnsQuery* GetQuery() const override { 152 const DnsQuery* GetQuery() const override { return query_.get(); }
153 return query_.get();
154 }
155 153
156 virtual const DnsResponse* GetResponse() const override { 154 const DnsResponse* GetResponse() const override {
157 const DnsResponse* resp = response_.get(); 155 const DnsResponse* resp = response_.get();
158 return (resp != NULL && resp->IsValid()) ? resp : NULL; 156 return (resp != NULL && resp->IsValid()) ? resp : NULL;
159 } 157 }
160 158
161 virtual const BoundNetLog& GetSocketNetLog() const override { 159 const BoundNetLog& GetSocketNetLog() const override {
162 return socket_lease_->socket()->NetLog(); 160 return socket_lease_->socket()->NetLog();
163 } 161 }
164 162
165 private: 163 private:
166 enum State { 164 enum State {
167 STATE_SEND_QUERY, 165 STATE_SEND_QUERY,
168 STATE_SEND_QUERY_COMPLETE, 166 STATE_SEND_QUERY_COMPLETE,
169 STATE_READ_RESPONSE, 167 STATE_READ_RESPONSE,
170 STATE_READ_RESPONSE_COMPLETE, 168 STATE_READ_RESPONSE_COMPLETE,
171 STATE_NONE, 169 STATE_NONE,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 scoped_ptr<StreamSocket> socket, 297 scoped_ptr<StreamSocket> socket,
300 scoped_ptr<DnsQuery> query) 298 scoped_ptr<DnsQuery> query)
301 : DnsAttempt(server_index), 299 : DnsAttempt(server_index),
302 next_state_(STATE_NONE), 300 next_state_(STATE_NONE),
303 socket_(socket.Pass()), 301 socket_(socket.Pass()),
304 query_(query.Pass()), 302 query_(query.Pass()),
305 length_buffer_(new IOBufferWithSize(sizeof(uint16))), 303 length_buffer_(new IOBufferWithSize(sizeof(uint16))),
306 response_length_(0) {} 304 response_length_(0) {}
307 305
308 // DnsAttempt: 306 // DnsAttempt:
309 virtual int Start(const CompletionCallback& callback) override { 307 int Start(const CompletionCallback& callback) override {
310 DCHECK_EQ(STATE_NONE, next_state_); 308 DCHECK_EQ(STATE_NONE, next_state_);
311 callback_ = callback; 309 callback_ = callback;
312 start_time_ = base::TimeTicks::Now(); 310 start_time_ = base::TimeTicks::Now();
313 next_state_ = STATE_CONNECT_COMPLETE; 311 next_state_ = STATE_CONNECT_COMPLETE;
314 int rv = socket_->Connect(base::Bind(&DnsTCPAttempt::OnIOComplete, 312 int rv = socket_->Connect(base::Bind(&DnsTCPAttempt::OnIOComplete,
315 base::Unretained(this))); 313 base::Unretained(this)));
316 if (rv == ERR_IO_PENDING) { 314 if (rv == ERR_IO_PENDING) {
317 set_result(rv); 315 set_result(rv);
318 return rv; 316 return rv;
319 } 317 }
320 return DoLoop(rv); 318 return DoLoop(rv);
321 } 319 }
322 320
323 virtual const DnsQuery* GetQuery() const override { 321 const DnsQuery* GetQuery() const override { return query_.get(); }
324 return query_.get();
325 }
326 322
327 virtual const DnsResponse* GetResponse() const override { 323 const DnsResponse* GetResponse() const override {
328 const DnsResponse* resp = response_.get(); 324 const DnsResponse* resp = response_.get();
329 return (resp != NULL && resp->IsValid()) ? resp : NULL; 325 return (resp != NULL && resp->IsValid()) ? resp : NULL;
330 } 326 }
331 327
332 virtual const BoundNetLog& GetSocketNetLog() const override { 328 const BoundNetLog& GetSocketNetLog() const override {
333 return socket_->NetLog(); 329 return socket_->NetLog();
334 } 330 }
335 331
336 private: 332 private:
337 enum State { 333 enum State {
338 STATE_CONNECT_COMPLETE, 334 STATE_CONNECT_COMPLETE,
339 STATE_SEND_LENGTH, 335 STATE_SEND_LENGTH,
340 STATE_SEND_QUERY, 336 STATE_SEND_QUERY,
341 STATE_READ_LENGTH, 337 STATE_READ_LENGTH,
342 STATE_READ_LENGTH_COMPLETE, 338 STATE_READ_LENGTH_COMPLETE,
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 qnames_initial_size_(0), 556 qnames_initial_size_(0),
561 attempts_count_(0), 557 attempts_count_(0),
562 had_tcp_attempt_(false), 558 had_tcp_attempt_(false),
563 first_server_index_(0) { 559 first_server_index_(0) {
564 DCHECK(session_.get()); 560 DCHECK(session_.get());
565 DCHECK(!hostname_.empty()); 561 DCHECK(!hostname_.empty());
566 DCHECK(!callback_.is_null()); 562 DCHECK(!callback_.is_null());
567 DCHECK(!IsIPLiteral(hostname_)); 563 DCHECK(!IsIPLiteral(hostname_));
568 } 564 }
569 565
570 virtual ~DnsTransactionImpl() { 566 ~DnsTransactionImpl() override {
571 if (!callback_.is_null()) { 567 if (!callback_.is_null()) {
572 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_DNS_TRANSACTION, 568 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_DNS_TRANSACTION,
573 ERR_ABORTED); 569 ERR_ABORTED);
574 } // otherwise logged in DoCallback or Start 570 } // otherwise logged in DoCallback or Start
575 } 571 }
576 572
577 virtual const std::string& GetHostname() const override { 573 const std::string& GetHostname() const override {
578 DCHECK(CalledOnValidThread()); 574 DCHECK(CalledOnValidThread());
579 return hostname_; 575 return hostname_;
580 } 576 }
581 577
582 virtual uint16 GetType() const override { 578 uint16 GetType() const override {
583 DCHECK(CalledOnValidThread()); 579 DCHECK(CalledOnValidThread());
584 return qtype_; 580 return qtype_;
585 } 581 }
586 582
587 virtual void Start() override { 583 void Start() override {
588 DCHECK(!callback_.is_null()); 584 DCHECK(!callback_.is_null());
589 DCHECK(attempts_.empty()); 585 DCHECK(attempts_.empty());
590 net_log_.BeginEvent(NetLog::TYPE_DNS_TRANSACTION, 586 net_log_.BeginEvent(NetLog::TYPE_DNS_TRANSACTION,
591 base::Bind(&NetLogStartCallback, &hostname_, qtype_)); 587 base::Bind(&NetLogStartCallback, &hostname_, qtype_));
592 AttemptResult result(PrepareSearch(), NULL); 588 AttemptResult result(PrepareSearch(), NULL);
593 if (result.rv == OK) { 589 if (result.rv == OK) {
594 qnames_initial_size_ = qnames_.size(); 590 qnames_initial_size_ = qnames_.size();
595 if (qtype_ == dns_protocol::kTypeA) 591 if (qtype_ == dns_protocol::kTypeA)
596 UMA_HISTOGRAM_COUNTS("AsyncDNS.SuffixSearchStart", qnames_.size()); 592 UMA_HISTOGRAM_COUNTS("AsyncDNS.SuffixSearchStart", qnames_.size());
597 result = ProcessAttemptResult(StartQuery()); 593 result = ProcessAttemptResult(StartQuery());
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 // ---------------------------------------------------------------------------- 957 // ----------------------------------------------------------------------------
962 958
963 // Implementation of DnsTransactionFactory that returns instances of 959 // Implementation of DnsTransactionFactory that returns instances of
964 // DnsTransactionImpl. 960 // DnsTransactionImpl.
965 class DnsTransactionFactoryImpl : public DnsTransactionFactory { 961 class DnsTransactionFactoryImpl : public DnsTransactionFactory {
966 public: 962 public:
967 explicit DnsTransactionFactoryImpl(DnsSession* session) { 963 explicit DnsTransactionFactoryImpl(DnsSession* session) {
968 session_ = session; 964 session_ = session;
969 } 965 }
970 966
971 virtual scoped_ptr<DnsTransaction> CreateTransaction( 967 scoped_ptr<DnsTransaction> CreateTransaction(
972 const std::string& hostname, 968 const std::string& hostname,
973 uint16 qtype, 969 uint16 qtype,
974 const CallbackType& callback, 970 const CallbackType& callback,
975 const BoundNetLog& net_log) override { 971 const BoundNetLog& net_log) override {
976 return scoped_ptr<DnsTransaction>(new DnsTransactionImpl( 972 return scoped_ptr<DnsTransaction>(new DnsTransactionImpl(
977 session_.get(), hostname, qtype, callback, net_log)); 973 session_.get(), hostname, qtype, callback, net_log));
978 } 974 }
979 975
980 private: 976 private:
981 scoped_refptr<DnsSession> session_; 977 scoped_refptr<DnsSession> session_;
982 }; 978 };
983 979
984 } // namespace 980 } // namespace
985 981
986 // static 982 // static
987 scoped_ptr<DnsTransactionFactory> DnsTransactionFactory::CreateFactory( 983 scoped_ptr<DnsTransactionFactory> DnsTransactionFactory::CreateFactory(
988 DnsSession* session) { 984 DnsSession* session) {
989 return scoped_ptr<DnsTransactionFactory>( 985 return scoped_ptr<DnsTransactionFactory>(
990 new DnsTransactionFactoryImpl(session)); 986 new DnsTransactionFactoryImpl(session));
991 } 987 }
992 988
993 } // namespace net 989 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/dns_test_util.cc ('k') | net/dns/dns_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698