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 "net/socket/client_socket_pool_base.h" | 5 #include "net/socket/client_socket_pool_base.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 if (group.HasConnectJobForHandle(handle)) { | 588 if (group.HasConnectJobForHandle(handle)) { |
589 // Just return the state of the oldest ConnectJob. | 589 // Just return the state of the oldest ConnectJob. |
590 return (*group.jobs().begin())->GetLoadState(); | 590 return (*group.jobs().begin())->GetLoadState(); |
591 } | 591 } |
592 | 592 |
593 if (group.CanUseAdditionalSocketSlot(max_sockets_per_group_)) | 593 if (group.CanUseAdditionalSocketSlot(max_sockets_per_group_)) |
594 return LOAD_STATE_WAITING_FOR_STALLED_SOCKET_POOL; | 594 return LOAD_STATE_WAITING_FOR_STALLED_SOCKET_POOL; |
595 return LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET; | 595 return LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET; |
596 } | 596 } |
597 | 597 |
598 base::DictionaryValue* ClientSocketPoolBaseHelper::GetInfoAsValue( | 598 scoped_ptr<base::DictionaryValue> ClientSocketPoolBaseHelper::GetInfoAsValue( |
599 const std::string& name, const std::string& type) const { | 599 const std::string& name, const std::string& type) const { |
600 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); | 600 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
601 dict->SetString("name", name); | 601 dict->SetString("name", name); |
602 dict->SetString("type", type); | 602 dict->SetString("type", type); |
603 dict->SetInteger("handed_out_socket_count", handed_out_socket_count_); | 603 dict->SetInteger("handed_out_socket_count", handed_out_socket_count_); |
604 dict->SetInteger("connecting_socket_count", connecting_socket_count_); | 604 dict->SetInteger("connecting_socket_count", connecting_socket_count_); |
605 dict->SetInteger("idle_socket_count", idle_socket_count_); | 605 dict->SetInteger("idle_socket_count", idle_socket_count_); |
606 dict->SetInteger("max_socket_count", max_sockets_); | 606 dict->SetInteger("max_socket_count", max_sockets_); |
607 dict->SetInteger("max_sockets_per_group", max_sockets_per_group_); | 607 dict->SetInteger("max_sockets_per_group", max_sockets_per_group_); |
608 dict->SetInteger("pool_generation_number", pool_generation_number_); | 608 dict->SetInteger("pool_generation_number", pool_generation_number_); |
609 | 609 |
610 if (group_map_.empty()) | 610 if (group_map_.empty()) |
611 return dict.release(); | 611 return dict.Pass(); |
612 | 612 |
613 base::DictionaryValue* all_groups_dict = new base::DictionaryValue(); | 613 base::DictionaryValue* all_groups_dict = new base::DictionaryValue(); |
614 for (GroupMap::const_iterator it = group_map_.begin(); | 614 for (GroupMap::const_iterator it = group_map_.begin(); |
615 it != group_map_.end(); it++) { | 615 it != group_map_.end(); it++) { |
616 const Group* group = it->second; | 616 const Group* group = it->second; |
617 base::DictionaryValue* group_dict = new base::DictionaryValue(); | 617 base::DictionaryValue* group_dict = new base::DictionaryValue(); |
618 | 618 |
619 group_dict->SetInteger("pending_request_count", | 619 group_dict->SetInteger("pending_request_count", |
620 group->pending_request_count()); | 620 group->pending_request_count()); |
621 if (group->has_pending_requests()) { | 621 if (group->has_pending_requests()) { |
(...skipping 23 matching lines...) Expand all Loading... |
645 group_dict->Set("connect_jobs", connect_jobs_list); | 645 group_dict->Set("connect_jobs", connect_jobs_list); |
646 | 646 |
647 group_dict->SetBoolean("is_stalled", group->CanUseAdditionalSocketSlot( | 647 group_dict->SetBoolean("is_stalled", group->CanUseAdditionalSocketSlot( |
648 max_sockets_per_group_)); | 648 max_sockets_per_group_)); |
649 group_dict->SetBoolean("backup_job_timer_is_running", | 649 group_dict->SetBoolean("backup_job_timer_is_running", |
650 group->BackupJobTimerIsRunning()); | 650 group->BackupJobTimerIsRunning()); |
651 | 651 |
652 all_groups_dict->SetWithoutPathExpansion(it->first, group_dict); | 652 all_groups_dict->SetWithoutPathExpansion(it->first, group_dict); |
653 } | 653 } |
654 dict->Set("groups", all_groups_dict); | 654 dict->Set("groups", all_groups_dict); |
655 return dict.release(); | 655 return dict.Pass(); |
656 } | 656 } |
657 | 657 |
658 bool ClientSocketPoolBaseHelper::IdleSocket::IsUsable() const { | 658 bool ClientSocketPoolBaseHelper::IdleSocket::IsUsable() const { |
659 if (socket->WasEverUsed()) | 659 if (socket->WasEverUsed()) |
660 return socket->IsConnectedAndIdle(); | 660 return socket->IsConnectedAndIdle(); |
661 return socket->IsConnected(); | 661 return socket->IsConnected(); |
662 } | 662 } |
663 | 663 |
664 bool ClientSocketPoolBaseHelper::IdleSocket::ShouldCleanup( | 664 bool ClientSocketPoolBaseHelper::IdleSocket::ShouldCleanup( |
665 base::TimeTicks now, | 665 base::TimeTicks now, |
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1337 // If there are no more requests, kill the backup timer. | 1337 // If there are no more requests, kill the backup timer. |
1338 if (pending_requests_.empty()) | 1338 if (pending_requests_.empty()) |
1339 backup_job_timer_.Stop(); | 1339 backup_job_timer_.Stop(); |
1340 request->CrashIfInvalid(); | 1340 request->CrashIfInvalid(); |
1341 return request.Pass(); | 1341 return request.Pass(); |
1342 } | 1342 } |
1343 | 1343 |
1344 } // namespace internal | 1344 } // namespace internal |
1345 | 1345 |
1346 } // namespace net | 1346 } // namespace net |
OLD | NEW |