Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "chrome/browser/extensions/api/dial/dial_service.h" | 5 #include "chrome/browser/extensions/api/dial/dial_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 523 ++iter) | 523 ++iter) |
| 524 BindAndAddSocket(*iter); | 524 BindAndAddSocket(*iter); |
| 525 | 525 |
| 526 SendOneRequest(); | 526 SendOneRequest(); |
| 527 } | 527 } |
| 528 | 528 |
| 529 void DialServiceImpl::BindAndAddSocket(const IPAddressNumber& bind_ip_address) { | 529 void DialServiceImpl::BindAndAddSocket(const IPAddressNumber& bind_ip_address) { |
| 530 scoped_ptr<DialServiceImpl::DialSocket> dial_socket(CreateDialSocket()); | 530 scoped_ptr<DialServiceImpl::DialSocket> dial_socket(CreateDialSocket()); |
| 531 if (dial_socket->CreateAndBindSocket(bind_ip_address, net_log_, | 531 if (dial_socket->CreateAndBindSocket(bind_ip_address, net_log_, |
| 532 net_log_source_)) | 532 net_log_source_)) |
| 533 dial_sockets_.push_back(dial_socket.release()); | 533 dial_sockets_.push_back(dial_socket.Pass()); |
| 534 } | 534 } |
| 535 | 535 |
| 536 scoped_ptr<DialServiceImpl::DialSocket> DialServiceImpl::CreateDialSocket() { | 536 scoped_ptr<DialServiceImpl::DialSocket> DialServiceImpl::CreateDialSocket() { |
| 537 scoped_ptr<DialServiceImpl::DialSocket> dial_socket( | 537 scoped_ptr<DialServiceImpl::DialSocket> dial_socket( |
| 538 new DialServiceImpl::DialSocket( | 538 new DialServiceImpl::DialSocket( |
| 539 base::Bind(&DialServiceImpl::NotifyOnDiscoveryRequest, AsWeakPtr()), | 539 base::Bind(&DialServiceImpl::NotifyOnDiscoveryRequest, AsWeakPtr()), |
| 540 base::Bind(&DialServiceImpl::NotifyOnDeviceDiscovered, AsWeakPtr()), | 540 base::Bind(&DialServiceImpl::NotifyOnDeviceDiscovered, AsWeakPtr()), |
| 541 base::Bind(&DialServiceImpl::NotifyOnError, AsWeakPtr()))); | 541 base::Bind(&DialServiceImpl::NotifyOnError, AsWeakPtr()))); |
| 542 return dial_socket.Pass(); | 542 return dial_socket.Pass(); |
| 543 } | 543 } |
| 544 | 544 |
| 545 void DialServiceImpl::SendOneRequest() { | 545 void DialServiceImpl::SendOneRequest() { |
| 546 DCHECK(thread_checker_.CalledOnValidThread()); | 546 DCHECK(thread_checker_.CalledOnValidThread()); |
| 547 if (num_requests_sent_ == max_requests_) { | 547 if (num_requests_sent_ == max_requests_) { |
| 548 VLOG(2) << "Reached max requests; stopping request timer."; | 548 VLOG(2) << "Reached max requests; stopping request timer."; |
| 549 request_timer_.Stop(); | 549 request_timer_.Stop(); |
| 550 return; | 550 return; |
| 551 } | 551 } |
| 552 num_requests_sent_++; | 552 num_requests_sent_++; |
| 553 VLOG(2) << "Sending request " << num_requests_sent_ << "/" | 553 VLOG(2) << "Sending request " << num_requests_sent_ << "/" |
| 554 << max_requests_; | 554 << max_requests_; |
| 555 for (ScopedVector<DialServiceImpl::DialSocket>::iterator iter = | 555 auto iter = dial_sockets_.begin(); |
|
mark a. foltz
2015/11/17 22:37:38
Can this be declared in the for() ?
Igor Vayzert
2015/11/18 03:12:56
Done.
| |
| 556 dial_sockets_.begin(); | 556 for (; iter != dial_sockets_.end(); ++iter) { |
| 557 iter != dial_sockets_.end(); | |
| 558 ++iter) { | |
| 559 if (!((*iter)->IsClosed())) | 557 if (!((*iter)->IsClosed())) |
| 560 (*iter)->SendOneRequest(send_address_, send_buffer_); | 558 (*iter)->SendOneRequest(send_address_, send_buffer_); |
| 561 } | 559 } |
| 562 } | 560 } |
| 563 | 561 |
| 564 void DialServiceImpl::NotifyOnDiscoveryRequest() { | 562 void DialServiceImpl::NotifyOnDiscoveryRequest() { |
| 565 DCHECK(thread_checker_.CalledOnValidThread()); | 563 DCHECK(thread_checker_.CalledOnValidThread()); |
| 566 // If discovery is inactive, no reason to notify observers. | 564 // If discovery is inactive, no reason to notify observers. |
| 567 if (!discovery_active_) { | 565 if (!discovery_active_) { |
| 568 VLOG(2) << "Request sent after discovery finished. Ignoring."; | 566 VLOG(2) << "Request sent after discovery finished. Ignoring."; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 611 // Close all open sockets. | 609 // Close all open sockets. |
| 612 dial_sockets_.clear(); | 610 dial_sockets_.clear(); |
| 613 finish_timer_.Stop(); | 611 finish_timer_.Stop(); |
| 614 request_timer_.Stop(); | 612 request_timer_.Stop(); |
| 615 discovery_active_ = false; | 613 discovery_active_ = false; |
| 616 num_requests_sent_ = 0; | 614 num_requests_sent_ = 0; |
| 617 FOR_EACH_OBSERVER(Observer, observer_list_, OnDiscoveryFinished(this)); | 615 FOR_EACH_OBSERVER(Observer, observer_list_, OnDiscoveryFinished(this)); |
| 618 } | 616 } |
| 619 | 617 |
| 620 bool DialServiceImpl::HasOpenSockets() { | 618 bool DialServiceImpl::HasOpenSockets() { |
| 621 for (ScopedVector<DialSocket>::const_iterator iter = dial_sockets_.begin(); | 619 auto iter = dial_sockets_.begin(); |
|
mark a. foltz
2015/11/17 22:37:38
Ditto
Igor Vayzert
2015/11/18 03:12:56
Done.
| |
| 622 iter != dial_sockets_.end(); | 620 for (; iter != dial_sockets_.end(); ++iter) { |
| 623 ++iter) { | |
| 624 if (!((*iter)->IsClosed())) | 621 if (!((*iter)->IsClosed())) |
| 625 return true; | 622 return true; |
| 626 } | 623 } |
| 627 return false; | 624 return false; |
| 628 } | 625 } |
| 629 | 626 |
| 630 } // namespace extensions | 627 } // namespace extensions |
| OLD | NEW |