blob: 5e6de7f5a0e42b1d34565e909b09f5557e5ec3b8 [file] [log] [blame]
// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Records IO statistics associated with a URLRequestJob.
// See description in navigation_profiler.h for an overview of perf profiling.
#ifndef NET_URL_REQUEST_URL_REQUEST_JOB_METRICS_H_
#define NET_URL_REQUEST_URL_REQUEST_JOB_METRICS_H_
#include <string>
#include "base/basictypes.h"
#include "base/scoped_ptr.h"
#include "base/time.h"
#include "googleurl/src/gurl.h"
class URLRequestJobMetrics {
public:
URLRequestJobMetrics() : total_bytes_read_(0), number_of_read_IO_(0) { }
~URLRequestJobMetrics() { }
// The original url the job has been created for.
scoped_ptr<GURL> original_url_;
// The actual url the job connects to. If the actual url is same as the
// original url, url_ is empty.
scoped_ptr<GURL> url_;
// Time when the job starts.
base::TimeTicks start_time_;
// Time when the job is done.
base::TimeTicks end_time_;
// Total number of bytes the job reads from underline IO.
int total_bytes_read_;
// Number of IO read operations the job issues.
int number_of_read_IO_;
// Final status of the job.
bool success_;
// Append the text report of the frame loading to the input string.
void AppendText(std::wstring* text);
};
#endif // NET_URL_REQUEST_URL_REQUEST_JOB_METRICS_H_