1// Copyright (c) 2012 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 CHROMEOS_DBUS_GSM_SMS_CLIENT_H_ 6#define CHROMEOS_DBUS_GSM_SMS_CLIENT_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/callback.h" 12#include "chromeos/chromeos_export.h" 13#include "chromeos/dbus/dbus_client.h" 14 15namespace base { 16class DictionaryValue; 17class ListValue; 18} 19 20namespace dbus { 21class ObjectPath; 22} 23 24namespace chromeos { 25 26// GsmSMSClient is used to communicate with the 27// org.freedesktop.ModemManager.Modem.Gsm.SMS service. 28// All methods should be called from the origin thread (UI thread) which 29// initializes the DBusThreadManager instance. 30class CHROMEOS_EXPORT GsmSMSClient : public DBusClient { 31 public: 32 typedef base::Callback<void(uint32 index, bool complete)> SmsReceivedHandler; 33 typedef base::Callback<void()> DeleteCallback; 34 typedef base::Callback<void(const base::DictionaryValue& sms)> GetCallback; 35 typedef base::Callback<void(const base::ListValue& result)> ListCallback; 36 37 virtual ~GsmSMSClient(); 38 39 // Factory function, creates a new instance and returns ownership. 40 // For normal usage, access the singleton via DBusThreadManager::Get(). 41 static GsmSMSClient* Create(); 42 43 // Sets SmsReceived signal handler. 44 virtual void SetSmsReceivedHandler(const std::string& service_name, 45 const dbus::ObjectPath& object_path, 46 const SmsReceivedHandler& handler) = 0; 47 48 // Resets SmsReceived signal handler. 49 virtual void ResetSmsReceivedHandler(const std::string& service_name, 50 const dbus::ObjectPath& object_path) = 0; 51 52 // Calls Delete method. |callback| is called after the method call succeeds. 53 virtual void Delete(const std::string& service_name, 54 const dbus::ObjectPath& object_path, 55 uint32 index, 56 const DeleteCallback& callback) = 0; 57 58 // Calls Get method. |callback| is called after the method call succeeds. 59 virtual void Get(const std::string& service_name, 60 const dbus::ObjectPath& object_path, 61 uint32 index, 62 const GetCallback& callback) = 0; 63 64 // Calls List method. |callback| is called after the method call succeeds. 65 virtual void List(const std::string& service_name, 66 const dbus::ObjectPath& object_path, 67 const ListCallback& callback) = 0; 68 69 // Requests a check for new messages. In shill this does nothing. The 70 // stub implementation uses it to generate a sequence of test messages. 71 virtual void RequestUpdate(const std::string& service_name, 72 const dbus::ObjectPath& object_path) = 0; 73 74 protected: 75 friend class GsmSMSClientTest; 76 77 // Create() should be used instead. 78 GsmSMSClient(); 79 80 private: 81 DISALLOW_COPY_AND_ASSIGN(GsmSMSClient); 82}; 83 84} // namespace chromeos 85 86#endif // CHROMEOS_DBUS_GSM_SMS_CLIENT_H_ 87