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