1// Copyright (c) 2013 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 CHROME_BROWSER_EXTENSIONS_API_SIGNED_IN_DEVICES_SIGNED_IN_DEVICES_API_H__
6#define CHROME_BROWSER_EXTENSIONS_API_SIGNED_IN_DEVICES_SIGNED_IN_DEVICES_API_H__
7
8#include <string>
9#include <vector>
10
11#include "base/memory/scoped_vector.h"
12#include "chrome/browser/extensions/chrome_extension_function.h"
13
14namespace sync_driver {
15class DeviceInfo;
16class DeviceInfoTracker;
17}  // namespace sync_driver
18
19namespace extensions {
20class ExtensionPrefs;
21}  // namespace extensions
22
23class Profile;
24
25namespace extensions {
26
27// Gets the list of signed in devices. The returned scoped vector will be
28// filled with the list of devices associated with the account signed into this
29// |profile|. This function needs the |extension_id| because the
30// public device ids are set per extension.
31ScopedVector<sync_driver::DeviceInfo> GetAllSignedInDevices(
32    const std::string& extension_id,
33    Profile* profile);
34
35ScopedVector<sync_driver::DeviceInfo> GetAllSignedInDevices(
36    const std::string& extension_id,
37    sync_driver::DeviceInfoTracker* device_tracker,
38    ExtensionPrefs* extension_prefs);
39
40class SignedInDevicesGetFunction : public ChromeSyncExtensionFunction {
41 protected:
42  virtual ~SignedInDevicesGetFunction() {}
43
44  // ExtensionFunction:
45  virtual bool RunSync() OVERRIDE;
46  DECLARE_EXTENSION_FUNCTION("signedInDevices.get", SIGNED_IN_DEVICES_GET)
47};
48
49}  // namespace extensions
50
51#endif  // CHROME_BROWSER_EXTENSIONS_API_SIGNED_IN_DEVICES_SIGNED_IN_DEVICES_API_H__
52