activity_factory.h revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "athena/athena_export.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "url/gurl.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace content { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class BrowserContext; 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace athena { 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class Activity; 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class ATHENA_EXPORT ActivityFactory { 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Registers the singleton factory. 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static void RegisterActivityFactory(ActivityFactory* factory); 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Gets the registered singleton factory. 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static ActivityFactory* Get(); 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Shutdowns the factory. 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static void Shutdown(); 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~ActivityFactory() {} 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Create an activity of a web page. 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual Activity* CreateWebActivity(content::BrowserContext* browser_context, 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const GURL& url) = 0; 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace athena 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif // ATHENA_ACTIVITY_PUBLIC_ACTIVITY_FACTORY_H_ 39