- add sources.
[platform/framework/web/crosswalk.git] / src / components / browser_context_keyed_service / refcounted_browser_context_keyed_service.cc
1 // Copyright (c) 2012 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 #include "components/browser_context_keyed_service/refcounted_browser_context_keyed_service.h"
6
7 namespace impl {
8
9 // static
10 void RefcountedBrowserContextKeyedServiceTraits::Destruct(
11     const RefcountedBrowserContextKeyedService* obj) {
12   if (obj->requires_destruction_on_thread_ &&
13       !content::BrowserThread::CurrentlyOn(obj->thread_id_)) {
14     content::BrowserThread::DeleteSoon(obj->thread_id_, FROM_HERE, obj);
15   } else {
16     delete obj;
17   }
18 }
19
20 }  // namespace impl
21
22 RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService()
23     : requires_destruction_on_thread_(false),
24       thread_id_(content::BrowserThread::UI) {
25 }
26
27 RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService(
28     const content::BrowserThread::ID thread_id)
29     : requires_destruction_on_thread_(true),
30       thread_id_(thread_id) {
31 }
32
33 RefcountedBrowserContextKeyedService::~RefcountedBrowserContextKeyedService() {}
34