| Index: chrome/browser/chromeos/drive/job_queue.h
|
| diff --git a/chrome/browser/chromeos/drive/job_queue.h b/chrome/browser/chromeos/drive/job_queue.h
|
| deleted file mode 100644
|
| index ab1bed938c71d1e255fa0b32a3cda59281826111..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/drive/job_queue.h
|
| +++ /dev/null
|
| @@ -1,88 +0,0 @@
|
| -// Copyright 2013 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.
|
| -
|
| -#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_JOB_QUEUE_H_
|
| -#define CHROME_BROWSER_CHROMEOS_DRIVE_JOB_QUEUE_H_
|
| -
|
| -#include <deque>
|
| -#include <set>
|
| -#include <vector>
|
| -
|
| -#include "chrome/browser/chromeos/drive/job_list.h"
|
| -
|
| -namespace drive {
|
| -
|
| -// Priority queue for managing jobs in JobScheduler.
|
| -class JobQueue {
|
| - public:
|
| - // Creates a queue that allows |num_max_concurrent_jobs| concurrent job
|
| - // execution and has |num_priority_levels| levels of priority.
|
| - JobQueue(size_t num_max_concurrent_jobs,
|
| - size_t num_priority_levels,
|
| - size_t num_max_batch_jobs,
|
| - size_t max_batch_size);
|
| - ~JobQueue();
|
| -
|
| - // Pushes a job |id| of |priority|. The job with the smallest priority value
|
| - // is popped first (lower values are higher priority). In the same priority,
|
| - // the queue is "first-in first-out". If multiple jobs with |batchable| = true
|
| - // are pushed continuously, there will be popped at the same time unless the
|
| - // number of jobs exceeds |num_max_batch_jobs_| or the sum of |job_size|
|
| - // exceeds or |max_batch_size_|.
|
| - void Push(JobID id, int priority, bool batchable, uint64 job_size);
|
| -
|
| - // Pops the first job which meets |accepted_priority| (i.e. the first job in
|
| - // the queue with equal or higher priority (lower value)), and the limit of
|
| - // concurrent job count is satisfied.
|
| - //
|
| - // For instance, if |accepted_priority| is 1, the first job with priority 0
|
| - // (higher priority) in the queue is picked even if a job with priority 1 was
|
| - // pushed earlier. If there is no job with priority 0, the first job with
|
| - // priority 1 in the queue is picked.
|
| - //
|
| - // If the first found job and following jobs are batchable, these jobs are
|
| - // popped out at the same time unless the total size of jobs exceeds
|
| - // |max_batch_size_|.
|
| - void PopForRun(int accepted_priority, std::vector<JobID>* jobs);
|
| -
|
| - // Gets queued jobs with the given priority.
|
| - void GetQueuedJobs(int priority, std::vector<JobID>* jobs) const;
|
| -
|
| - // Marks a running job |id| as finished running. This decreases the count
|
| - // of running parallel jobs and makes room for other jobs to be popped.
|
| - void MarkFinished(JobID id);
|
| -
|
| - // Generates a string representing the internal state for logging.
|
| - std::string ToString() const;
|
| -
|
| - // Gets the total number of jobs in the queue.
|
| - size_t GetNumberOfJobs() const;
|
| -
|
| - // Removes the job from the queue.
|
| - void Remove(JobID id);
|
| -
|
| - private:
|
| - // JobID and additional properties that are needed to determine which tasks it
|
| - // runs next.
|
| - struct Item {
|
| - Item();
|
| - Item(JobID id, bool batchable, uint64 size);
|
| - ~Item();
|
| - JobID id;
|
| - bool batchable;
|
| - uint64 size;
|
| - };
|
| -
|
| - const size_t num_max_concurrent_jobs_;
|
| - std::vector<std::deque<Item>> queue_;
|
| - const size_t num_max_batch_jobs_;
|
| - const size_t max_batch_size_;
|
| - std::set<JobID> running_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(JobQueue);
|
| -};
|
| -
|
| -} // namespace drive
|
| -
|
| -#endif // CHROME_BROWSER_CHROMEOS_DRIVE_JOB_QUEUE_H_
|
|
|