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