// Copyright (c) 2012 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_MM1_MODEM_TIME_PROXY_INTERFACE_H_
#define SHILL_MM1_MODEM_TIME_PROXY_INTERFACE_H_

#include <string>

#include <base/basictypes.h>

#include "shill/callbacks.h"

namespace shill {
class Error;

namespace mm1 {

typedef base::Callback<void(const std::string &)>
    NetworkTimeChangedSignalCallback;

// These are the methods that an org.freedesktop.ModemManager1.Modem.Time
// 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.
class ModemTimeProxyInterface {
 public:
  virtual ~ModemTimeProxyInterface() {}

  virtual void GetNetworkTime(Error *error,
                              const StringCallback &callback,
                              int timeout) = 0;

  virtual void set_network_time_changed_callback(
      const NetworkTimeChangedSignalCallback &callback) = 0;
};

}  // namespace mm1
}  // namespace shill

#endif  // SHILL_MM1_MODEM_TIME_PROXY_INTERFACE_H_
