| // 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; |
| |
| import "request.proto"; |
| import "scheduling.proto"; |
| |
| // This should stay in sync with the DownloadClient enum |
| // (components/download/public/clients.h). |
| enum DownloadClient { |
| INVALID = 0; |
| TEST = 1; |
| TEST_2 = 2; |
| TEST_3 = 3; |
| OFFLINE_PAGE_PREFETCH = 4; |
| BACKGROUND_FETCH = 5; |
| DEBUGGING = 6; |
| BOUNDARY = 7; |
| } |
| |
| // Stores the request params, internal state, metrics and metadata associated |
| // with a download request. |
| message Entry { |
| // This should stay in sync with the State enum |
| // (components/download/internal/entry.h). |
| enum State { |
| NEW = 0; |
| AVAILABLE = 1; |
| ACTIVE = 2; |
| PAUSED = 3; |
| COMPLETE = 4; |
| } |
| |
| // Identification Parameters. |
| optional DownloadClient name_space = 1; |
| optional string guid = 2; |
| |
| // Requested Parameters. |
| optional SchedulingParams scheduling_params = 3; |
| optional RequestParams request_params = 4; |
| |
| // Internal Tracking States. |
| optional State state = 5; |
| optional string target_file_path = 6; |
| |
| // Uses internal time representation. |
| optional int64 create_time = 7; |
| optional int64 completion_time = 8; |
| |
| optional uint32 attempt_count = 9; |
| |
| // Representation of a net::NetworkTrafficAnnotationTag. |
| optional int32 traffic_annotation = 10; |
| |
| // Size of the download file in bytes. |
| optional uint64 bytes_downloaded = 11; |
| |
| // Uses internal time representation. |
| optional int64 last_cleanup_check_time = 12; |
| optional uint32 cleanup_attempt_count = 13; |
| |
| optional uint32 resumption_count = 14; |
| } |