// Copyright 2017 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package protodb;

// Stores the scheduling params associated with a download request.
message SchedulingParams {
  // This should stay in sync with the NetworkRequirements enum
  // (components/download/public/download_params.h).
  enum NetworkRequirements {
    NONE = 0;
    OPTIMISTIC = 1;
    UNMETERED = 2;
  }

  // This should stay in sync with the BatteryRequirements enum
  // (components/download/public/download_params.h).
  enum BatteryRequirements {
    BATTERY_INSENSITIVE = 0;
    BATTERY_SENSITIVE = 1;
  }

  // This should stay in sync with the Priority enum
  // (components/download/public/download_params.h).
  enum Priority {
    LOW = 0;
    NORMAL = 1;
    HIGH = 2;
    UI = 3;
  }

  // Uses internal time representation.
  optional int64 cancel_time = 2;

  optional Priority priority = 3;
  optional NetworkRequirements network_requirements = 4;
  optional BatteryRequirements battery_requirements = 5;
}
