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 8 namespace 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). 18 class 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