| Index: chrome/browser/chromeos/system/statistics_provider.h
|
| diff --git a/chrome/browser/chromeos/system/statistics_provider.h b/chrome/browser/chromeos/system/statistics_provider.h
|
| index 1908087826ccb6b91d74b66b56b69ea3cdbde80e..9541e4c2ca90f727c2a221390980f53e27188f3a 100644
|
| --- a/chrome/browser/chromeos/system/statistics_provider.h
|
| +++ b/chrome/browser/chromeos/system/statistics_provider.h
|
| @@ -14,12 +14,34 @@ namespace system {
|
| // This interface provides access to Chrome OS statistics.
|
| class StatisticsProvider {
|
| public:
|
| - // Retrieve the named machine statistic (e.g. "hardware_class").
|
| - // This does not update the statistcs. If the |name| is not set, |result|
|
| - // preserves old value.
|
| + class Observer {
|
| + public:
|
| + virtual ~Observer() {}
|
| +
|
| + // Invoked on the UI thread once the statistics have been loaded.
|
| + // Any calls to GetMachineStatistic() after this callback are guaranteed
|
| + // not to block.
|
| + virtual void OnMachineStatisticsReady() = 0;
|
| + };
|
| +
|
| + // Get the machine statistic with a key of |name| (e.g., "hardware_class").
|
| + // Returns true if the key was found, and data was returned in |result|.
|
| + // Returns false otherwise, and the contents of |result| are undefined.
|
| + // This call may block for an arbitrary length of time (waiting for statistics
|
| + // to load, or a timeout to take place). If this function is called anytime
|
| + // after OnMachineStatisticsReady() has been invoked on an observer,
|
| + // then this function is guaranteed not to block.
|
| virtual bool GetMachineStatistic(const std::string& name,
|
| std::string* result) = 0;
|
|
|
| + // Invokes OnMachineStatisticsReady() on the |observer| once the machine
|
| + // statistics are ready. That call can be executed synchronously if the
|
| + // statistics are already ready.
|
| + virtual void AddObserver(Observer* observer) = 0;
|
| +
|
| + // Removes the given |observer|. Observers must be removed before shutdown.
|
| + virtual void RemoveObserver(Observer* observer) = 0;
|
| +
|
| static StatisticsProvider* GetInstance();
|
|
|
| protected:
|
|
|