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#ifndef CONTENT_PUBLIC_BROWSER_BROWSER_THREAD_DELEGATE_H_ 6#define CONTENT_PUBLIC_BROWSER_BROWSER_THREAD_DELEGATE_H_ 7 8namespace content { 9 10// A class with this type may be registered via 11// BrowserThread::SetDelegate. 12// 13// If registered as such, it will schedule to run Init() before the 14// message loop begins and the schedule InitAsync() as the first 15// task on its message loop (after the BrowserThread has done its own 16// initialization), and receive a CleanUp call right after the message 17// loop ends (and before the BrowserThread has done its own clean-up). 18class BrowserThreadDelegate { 19 public: 20 virtual ~BrowserThreadDelegate() {} 21 22 // Called prior to starting the message loop 23 virtual void Init() = 0; 24 25 // Called as the first task on the thread's message loop. 26 virtual void InitAsync() = 0; 27 28 // Called just after the message loop ends. 29 virtual void CleanUp() = 0; 30}; 31 32} // namespace content 33 34#endif // CONTENT_PUBLIC_BROWSER_BROWSER_THREAD_DELEGATE_H_ 35