Home | History | Annotate | Download | only in fetch
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/at_exit.h"
      6 #include "base/command_line.h"
      7 #include "base/memory/singleton.h"
      8 #include "base/message_loop.h"
      9 #include "base/metrics/stats_counters.h"
     10 #include "net/base/completion_callback.h"
     11 #include "net/base/io_buffer.h"
     12 #include "net/base/net_errors.h"
     13 #include "net/base/winsock_init.h"
     14 #include "net/http/http_network_layer.h"
     15 #include "net/http/http_request_info.h"
     16 #include "net/http/http_transaction.h"
     17 #include "net/proxy/proxy_service.h"
     18 #include "net/tools/fetch/http_server.h"
     19 
     20 void usage(const char* program_name) {
     21   printf("usage: %s\n", program_name);
     22   exit(-1);
     23 }
     24 
     25 int main(int argc, char**argv) {
     26   base::AtExitManager exit;
     27   base::StatsTable table("fetchserver", 50, 1000);
     28   table.set_current(&table);
     29 
     30 #if defined(OS_WIN)
     31   net::EnsureWinsockInit();
     32 #endif  // defined(OS_WIN)
     33 
     34   CommandLine::Init(0, NULL);
     35   const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
     36 
     37   // Do work here.
     38   MessageLoop loop;
     39   HttpServer server("", 80);   // TODO(mbelshe): make port configurable
     40   MessageLoop::current()->Run();
     41 
     42   if (parsed_command_line.HasSwitch("stats")) {
     43     // Dump the stats table.
     44     printf("<stats>\n");
     45     int counter_max = table.GetMaxCounters();
     46     for (int index=0; index < counter_max; index++) {
     47       std::string name(table.GetRowName(index));
     48       if (name.length() > 0) {
     49         int value = table.GetRowValue(index);
     50         printf("%s:\t%d\n", name.c_str(), value);
     51       }
     52     }
     53     printf("</stats>\n");
     54   }
     55 
     56 }
     57