// Copyright 2015 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.
//
// Protocol buffer definitions for Data Reduction Proxy data stored in LevelDB.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package data_reduction_proxy;

// Contains data usage for an interval of time.
message DataUsageBucket {
  repeated PerConnectionDataUsage connection_usage = 1;

  // Timestamp of the last update that was included in this bucket.
  optional int64 last_updated_timestamp = 2;

  // True if there was an error while parsing this from disk.
  optional bool had_read_error = 3;
}

message PerConnectionDataUsage {
  repeated PerSiteDataUsage site_usage = 1;
}

// Data usage for a specific site.
message PerSiteDataUsage {
  // Full hostname of the site without scheme, port, and trailing slashes.
  // Eg: For page "http://www.finance.google.com/index.html?a=b", hostname will
  // be "www.finance.google.com".
  required string hostname = 1;

  // Total data used in bytes when browsing this site.
  required int64 data_used = 2;

  // Amount of data that would have been used to browse this site without
  // employing any data saving techniques.
  required int64 original_size = 3;
}
