text: // Copyright 2018 The Chromium OS Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef SHILL_CELLULAR_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_
  #define SHILL_CELLULAR_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_
  
  #include "shill/callbacks.h"
  
  namespace shill {
  class Error;
  
  namespace mm1 {
  
  // These are the methods that an org.freedesktop.ModemManager1.Modem.Location
  // proxy must support. The interface is provided so that it can be mocked
  // in tests. All calls are made asynchronously. Call completion is signalled
  // via callbacks passed to the methods.
  // Implemented as ChromeosModemLocationProxy.
  class ModemLocationProxyInterface {
   public:
    virtual ~ModemLocationProxyInterface() {}
  
    virtual void Setup(uint32_t sources,
                       bool signal_location,
                       Error* error,
                       const ResultCallback& callback,
                       int timeout) = 0;
  
    virtual void GetLocation(Error* error,
                             const BrilloAnyCallback& callback,
                             int timeout) = 0;
  };
  
  }  // namespace mm1
  }  // namespace shill
  
  #endif  // SHILL_CELLULAR_MM1_MODEM_LOCATION_PROXY_INTERFACE_H_
  