| Index: chromeos/dbus/shill_third_party_vpn_driver_client.h | 
| diff --git a/chromeos/dbus/shill_third_party_vpn_driver_client.h b/chromeos/dbus/shill_third_party_vpn_driver_client.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..ce9a30ef78c8f575a136549fe71ff2fcdbdd4d4f | 
| --- /dev/null | 
| +++ b/chromeos/dbus/shill_third_party_vpn_driver_client.h | 
| @@ -0,0 +1,91 @@ | 
| +// Copyright 2014 The Chromium 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 CHROMEOS_DBUS_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_ | 
| +#define CHROMEOS_DBUS_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_ | 
| + | 
| +#include <stdint.h> | 
| + | 
| +#include "base/callback.h" | 
| +#include "chromeos/chromeos_export.h" | 
| +#include "chromeos/dbus/dbus_client.h" | 
| +#include "chromeos/dbus/shill_client_helper.h" | 
| +#include "dbus/object_path.h" | 
| + | 
| +namespace chromeos { | 
| + | 
| +class ShillThirdPartyVpnObserver; | 
| + | 
| +// ShillThirdPartyVpnDriverClient is used to communicate with the Shill | 
| +// ThirdPartyVpnDriver service. | 
| +// All methods should be called from the origin thread which initializes the | 
| +// DBusThreadManager instance. | 
| +class CHROMEOS_EXPORT ShillThirdPartyVpnDriverClient : public DBusClient { | 
| + public: | 
| +  class TestInterface { | 
| +   public: | 
| +    virtual void OnPacketReceived(const dbus::ObjectPath& object_path, | 
| +                                  const std::string& packet) = 0; | 
| +    virtual void OnPlatformMessage(const dbus::ObjectPath& object_path, | 
| +                                   uint32_t message) = 0; | 
| + | 
| +   protected: | 
| +    virtual ~TestInterface() {} | 
| +  }; | 
| + | 
| +  ~ShillThirdPartyVpnDriverClient() override; | 
| + | 
| +  // Factory function, creates a new instance which is owned by the caller. | 
| +  // For normal usage, access the singleton via DBusThreadManager::Get(). | 
| +  static ShillThirdPartyVpnDriverClient* Create(); | 
| + | 
| +  // Adds an |observer| for the third party vpn driver at |object_path|. | 
| +  virtual void AddShillThirdPartyVpnObserver( | 
| +      const dbus::ObjectPath& object_path, | 
| +      ShillThirdPartyVpnObserver* observer) = 0; | 
| + | 
| +  // Removes an |observer| for the third party vpn driver at |object_path|. | 
| +  virtual void RemoveShillThirdPartyVpnObserver( | 
| +      const dbus::ObjectPath& object_path) = 0; | 
| + | 
| +  // Calls SetParameters method. | 
| +  // |callback| is called after the method call succeeds. | 
| +  virtual void SetParameters( | 
| +      const dbus::ObjectPath& object_path, | 
| +      const base::DictionaryValue& parameters, | 
| +      const base::Closure& callback, | 
| +      const ShillClientHelper::ErrorCallback& error_callback) = 0; | 
| + | 
| +  // Calls UpdateConnectionState method. | 
| +  // |callback| is called after the method call succeeds. | 
| +  virtual void UpdateConnectionState( | 
| +      const dbus::ObjectPath& object_path, | 
| +      const uint32_t connection_state, | 
| +      const base::Closure& callback, | 
| +      const ShillClientHelper::ErrorCallback& error_callback) = 0; | 
| + | 
| +  // Calls SendPacket method. | 
| +  // |callback| is called after the method call succeeds. | 
| +  virtual void SendPacket( | 
| +      const dbus::ObjectPath& object_path, | 
| +      const std::string& ip_packet, | 
| +      const base::Closure& callback, | 
| +      const ShillClientHelper::ErrorCallback& error_callback) = 0; | 
| + | 
| +  // Returns an interface for testing (stub only), or returns NULL. | 
| +  virtual ShillThirdPartyVpnDriverClient::TestInterface* GetTestInterface() = 0; | 
| + | 
| + protected: | 
| +  friend class ShillThirdPartyVpnDriverClientTest; | 
| + | 
| +  // Create() should be used instead. | 
| +  ShillThirdPartyVpnDriverClient(); | 
| + | 
| + private: | 
| +  DISALLOW_COPY_AND_ASSIGN(ShillThirdPartyVpnDriverClient); | 
| +}; | 
| + | 
| +}  // namespace chromeos | 
| + | 
| +#endif  // CHROMEOS_DBUS_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_ | 
|  |