Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1438)

Unified Diff: chrome/browser/extensions/api/system_info/system_info_provider.h

Issue 389633002: Move system.* family of APIs to extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Better comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698