| Index: chrome/browser/extensions/api/system_info/system_info_provider.h
|
| diff --git a/chrome/browser/extensions/api/system_info/system_info_provider.h b/chrome/browser/extensions/api/system_info/system_info_provider.h
|
| deleted file mode 100644
|
| index 5e9c5cf9f54e464af0fc88edc7e8143a916e1bd8..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/system_info/system_info_provider.h
|
| +++ /dev/null
|
| @@ -1,98 +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_EXTENSIONS_API_SYSTEM_INFO_SYSTEM_INFO_PROVIDER_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_API_SYSTEM_INFO_SYSTEM_INFO_PROVIDER_H_
|
| -
|
| -#include <queue>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/threading/sequenced_worker_pool.h"
|
| -
|
| -namespace extensions {
|
| -
|
| -// An abstract base class for all kinds of system information providers. Each
|
| -// kind of SystemInfoProvider is a single shared instance. It is created if
|
| -// needed, and destroyed at exit time. This is done via LazyInstance and
|
| -// scoped_refptr.
|
| -//
|
| -// The SystemInfoProvider is designed to query system information on the worker
|
| -// pool. It also maintains a queue of callbacks on the UI thread which are
|
| -// waiting for the completion of querying operation. Once the query operation
|
| -// is completed, all pending callbacks in the queue get called on the UI
|
| -// thread. In this way, it avoids frequent querying operation in case of lots
|
| -// of query requests, e.g. calling systemInfo.cpu.get repeatedly in an
|
| -// extension process.
|
| -//
|
| -// Each kind of SystemInfoProvider should satisfy an API query in a subclass on
|
| -// the blocking pool.
|
| -class SystemInfoProvider
|
| - : public base::RefCountedThreadSafe<SystemInfoProvider> {
|
| - public:
|
| - // Callback type for completing to get information. The argument indicates
|
| - // whether its contents are valid, for example, no error occurs in querying
|
| - // the information.
|
| - typedef base::Callback<void(bool)> QueryInfoCompletionCallback;
|
| - typedef std::queue<QueryInfoCompletionCallback> CallbackQueue;
|
| -
|
| - SystemInfoProvider();
|
| -
|
| - // Override to do any prepare work on UI thread before |QueryInfo()| gets
|
| - // called.
|
| - virtual void PrepareQueryOnUIThread();
|
| -
|
| - // The parameter |do_query_info_callback| is query info task which is posted
|
| - // to SystemInfoProvider sequenced worker pool.
|
| - //
|
| - // You can do any initial things of *InfoProvider before start to query info.
|
| - // While overriding this method, |do_query_info_callback| *must* be called
|
| - // directly or indirectly.
|
| - //
|
| - // Sample usage please refer to StorageInfoProvider.
|
| - virtual void InitializeProvider(const base::Closure& do_query_info_callback);
|
| -
|
| - // Start to query the system information. Should be called on UI thread.
|
| - // The |callback| will get called once the query is completed.
|
| - //
|
| - // If the parameter |callback| itself calls StartQueryInfo(callback2),
|
| - // callback2 will be called immediately rather than triggering another call to
|
| - // the system.
|
| - void StartQueryInfo(const QueryInfoCompletionCallback& callback);
|
| -
|
| - protected:
|
| - virtual ~SystemInfoProvider();
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<SystemInfoProvider>;
|
| -
|
| - // Interface to query the system information synchronously.
|
| - // Return true if no error occurs.
|
| - // Should be called in the blocking pool.
|
| - virtual bool QueryInfo() = 0;
|
| -
|
| - // Called on UI thread. The |success| parameter means whether it succeeds
|
| - // to get the information.
|
| - void OnQueryCompleted(bool success);
|
| -
|
| - void StartQueryInfoPostInitialization();
|
| -
|
| - // The queue of callbacks waiting for the info querying completion. It is
|
| - // maintained on the UI thread.
|
| - CallbackQueue callbacks_;
|
| -
|
| - // Indicates if it is waiting for the querying completion.
|
| - bool is_waiting_for_completion_;
|
| -
|
| - // Sequenced worker pool to make the operation of querying information get
|
| - // executed in order.
|
| - scoped_refptr<base::SequencedTaskRunner> worker_pool_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SystemInfoProvider);
|
| -};
|
| -
|
| -} // namespace extensions
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_SYSTEM_INFO_SYSTEM_INFO_PROVIDER_H_
|
|
|