| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "base/at_exit.h" | 5 #include "base/at_exit.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/singleton.h" | 8 #include "base/singleton.h" |
| 9 #include "base/stats_counters.h" | 9 #include "base/stats_counters.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| 11 #include "net/base/completion_callback.h" | 11 #include "net/base/completion_callback.h" |
| 12 #include "net/base/host_resolver.h" |
| 12 #include "net/base/io_buffer.h" | 13 #include "net/base/io_buffer.h" |
| 13 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
| 14 #include "net/http/http_cache.h" | 15 #include "net/http/http_cache.h" |
| 15 #include "net/http/http_network_layer.h" | 16 #include "net/http/http_network_layer.h" |
| 16 #include "net/http/http_request_info.h" | 17 #include "net/http/http_request_info.h" |
| 17 #include "net/http/http_transaction.h" | 18 #include "net/http/http_transaction.h" |
| 18 #include "net/proxy/proxy_service.h" | 19 #include "net/proxy/proxy_service.h" |
| 19 | 20 |
| 20 void usage(const char* program_name) { | 21 void usage(const char* program_name) { |
| 21 printf("usage: %s --url=<url> [--n=<clients>] [--stats] [--use_cache]\n", | 22 printf("usage: %s --url=<url> [--n=<clients>] [--stats] [--use_cache]\n", |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 usage(argv[0]); | 119 usage(argv[0]); |
| 119 int client_limit = 1; | 120 int client_limit = 1; |
| 120 if (parsed_command_line.HasSwitch(L"n")) | 121 if (parsed_command_line.HasSwitch(L"n")) |
| 121 StringToInt(WideToASCII(parsed_command_line.GetSwitchValue(L"n")), | 122 StringToInt(WideToASCII(parsed_command_line.GetSwitchValue(L"n")), |
| 122 &client_limit); | 123 &client_limit); |
| 123 bool use_cache = parsed_command_line.HasSwitch(L"use-cache"); | 124 bool use_cache = parsed_command_line.HasSwitch(L"use-cache"); |
| 124 | 125 |
| 125 // Do work here. | 126 // Do work here. |
| 126 MessageLoop loop; | 127 MessageLoop loop; |
| 127 | 128 |
| 129 net::HostResolver host_resolver; |
| 128 scoped_ptr<net::ProxyService> proxy_service(net::ProxyService::CreateNull()); | 130 scoped_ptr<net::ProxyService> proxy_service(net::ProxyService::CreateNull()); |
| 129 net::HttpTransactionFactory* factory = NULL; | 131 net::HttpTransactionFactory* factory = NULL; |
| 130 if (use_cache) | 132 if (use_cache) |
| 131 factory = new net::HttpCache(proxy_service.get(), 0); | 133 factory = new net::HttpCache(&host_resolver, proxy_service.get(), 0); |
| 132 else | 134 else |
| 133 factory = new net::HttpNetworkLayer(proxy_service.get()); | 135 factory = new net::HttpNetworkLayer(&host_resolver, proxy_service.get()); |
| 134 | 136 |
| 135 { | 137 { |
| 136 StatsCounterTimer driver_time("FetchClient.total_time"); | 138 StatsCounterTimer driver_time("FetchClient.total_time"); |
| 137 StatsScope<StatsCounterTimer> scope(driver_time); | 139 StatsScope<StatsCounterTimer> scope(driver_time); |
| 138 | 140 |
| 139 Client** clients = new Client*[client_limit]; | 141 Client** clients = new Client*[client_limit]; |
| 140 for (int i = 0; i < client_limit; i++) | 142 for (int i = 0; i < client_limit; i++) |
| 141 clients[i] = new Client(factory, url); | 143 clients[i] = new Client(factory, url); |
| 142 | 144 |
| 143 MessageLoop::current()->Run(); | 145 MessageLoop::current()->Run(); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 std::string name(table.GetRowName(index)); | 177 std::string name(table.GetRowName(index)); |
| 176 if (name.length() > 0) { | 178 if (name.length() > 0) { |
| 177 int value = table.GetRowValue(index); | 179 int value = table.GetRowValue(index); |
| 178 printf("%s:\t%d\n", name.c_str(), value); | 180 printf("%s:\t%d\n", name.c_str(), value); |
| 179 } | 181 } |
| 180 } | 182 } |
| 181 printf("</stats>\n"); | 183 printf("</stats>\n"); |
| 182 } | 184 } |
| 183 return 0; | 185 return 0; |
| 184 } | 186 } |
| OLD | NEW |