16d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 26d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 36d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// found in the LICENSE file. 46d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 56d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#ifndef CHROME_BROWSER_APPS_DRIVE_DRIVE_SERVICE_BRIDGE_H_ 66d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#define CHROME_BROWSER_APPS_DRIVE_DRIVE_SERVICE_BRIDGE_H_ 76d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 86d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include <set> 96d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 126d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)namespace drive { 136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class DriveAppRegistry; 146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class BrowserContextKeyedServiceFactory; 176d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class Profile; 186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 196d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// An interface to access Drive service for a given profile. 206d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class DriveServiceBridge { 216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) public: 226d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) virtual ~DriveServiceBridge() {} 236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // Factory to create an instance of DriveServiceBridge. 256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static scoped_ptr<DriveServiceBridge> Create(Profile* profile); 266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // Appends PKS factories this class depends on. 286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) static void AppendDependsOnFactories( 296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) std::set<BrowserContextKeyedServiceFactory*>* factories); 306d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 316d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // Returns the DriveAppRegistery to use. The ownership is not transferred. 326d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) virtual drive::DriveAppRegistry* GetAppRegistry() = 0; 336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}; 346d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 356d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#endif // CHROME_BROWSER_APPS_DRIVE_DRIVE_SERVICE_BRIDGE_H_ 36