device_oauth2_token_service_factory.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_OAUTH2_TOKEN_SERVICE_FACTORY_H_
6#define CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_OAUTH2_TOKEN_SERVICE_FACTORY_H_
7
8#include "base/basictypes.h"
9
10namespace chromeos {
11
12class DeviceOAuth2TokenService;
13
14class DeviceOAuth2TokenServiceFactory {
15 public:
16  // Returns the instance of the DeviceOAuth2TokenService singleton.
17  // May return null during browser startup and shutdown.  Do not hold
18  // the pointer returned by this method; call this method every time
19  // and check for null to handle the case where this instance is destroyed
20  // during shutdown.
21  static DeviceOAuth2TokenService* Get();
22
23  // Called by ChromeBrowserMainPartsChromeOS in order to bootstrap the
24  // DeviceOAuth2TokenService instance after the required global data is
25  // available (local state and request context getter).
26  static void Initialize();
27
28  // Called by ChromeBrowserMainPartsChromeOS in order to shutdown the
29  // DeviceOAuth2TokenService instance and cancel all in-flight requests
30  // before the required global data is destroyed (local state and request
31  // context getter).
32  static void Shutdown();
33
34 private:
35  DeviceOAuth2TokenServiceFactory();
36
37  DISALLOW_COPY_AND_ASSIGN(DeviceOAuth2TokenServiceFactory);
38};
39
40}  // namespace chromeos
41
42#endif  // CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_OAUTH2_TOKEN_SERVICE_FACTORY_H_
43