blob: 0567df58f315f6dd4b619f59ce04567d71830cdc [file] [log] [blame]
Arman Uguray2c39fab2012-12-12 16:56:34 -08001// Copyright (c) 2012 The Chromium OS 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 SHILL_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_
6#define SHILL_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_
7
8#include <base/basictypes.h>
9
10#include "shill/callbacks.h"
11
12namespace shill {
13class Error;
14
15namespace mm1 {
16
17// These are the methods that an org.freedesktop.ModemManager1.Modem.Location
18// proxy must support. The interface is provided so that it can be mocked
19// in tests. All calls are made asynchronously. Call completion is signalled
20// via callbacks passed to the methods.
21class ModemLocationProxyInterface {
22 public:
23 virtual ~ModemLocationProxyInterface() {}
24
25 virtual void Setup(uint32_t sources,
26 bool signal_location,
27 Error *error,
28 const ResultCallback &callback,
29 int timeout) = 0;
30
31 virtual void GetLocation(Error *error,
32 const DBusEnumValueMapCallback &callback,
33 int timeout) = 0;
34
35 // Properties
36 virtual uint32_t Capabilities() = 0;
37 virtual uint32_t Enabled() = 0;
38 virtual bool SignalsLocation() = 0;
39 virtual const DBusEnumValueMap Location() = 0;
40};
41
42} // namespace mm1
43} // namespace shill
44
45#endif // SHILL_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_