Home | History | Annotate | Download | only in profiles
      1 // Copyright (c) 2011 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_PROFILES_PROFILE_KEYED_SERVICE_H_
      6 #define CHROME_BROWSER_PROFILES_PROFILE_KEYED_SERVICE_H_
      7 
      8 // Base class for all ProfileKeyedServices to allow for correct destruction
      9 // order.
     10 //
     11 // Many services that hang off Profile have a two-pass shutdown. Many
     12 // subsystems need a first pass shutdown phase where they drop references. Not
     13 // all services will need this, so there's a default implementation. Only once
     14 // every system has been given a chance to drop references do we start deleting
     15 // objects.
     16 class ProfileKeyedService {
     17  public:
     18   // The first pass is to call Shutdown on a ProfileKeyedService.
     19   virtual void Shutdown() {}
     20 
     21   // The second pass is the actual deletion of each object.
     22   virtual ~ProfileKeyedService() {}
     23 };
     24 
     25 #endif  // CHROME_BROWSER_PROFILES_PROFILE_KEYED_SERVICE_H_
     26 
     27