Chromium Code Reviews| 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..ba4275e45ff3edae84beb221b879f334f39b8506 |
| --- /dev/null |
| +++ b/chromeos/dbus/shill_third_party_vpn_driver_client.h |
| @@ -0,0 +1,83 @@ |
| +// 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 "base/basictypes.h" |
| +#include "base/callback.h" |
| +#include "chromeos/chromeos_export.h" |
| +#include "chromeos/dbus/dbus_client.h" |
| +#include "chromeos/dbus/shill_client_helper.h" |
| + |
| +namespace dbus { |
| + |
| +class ObjectPath; |
| + |
| +} // namespace dbus |
| + |
| +namespace chromeos { |
| + |
| +// This is a base class for observers which handle signals sent by the |
| +// ThirdPartyVpnAdaptor in Shill. |
| +class ShillThirdPartyVpnObserver { |
| + public: |
| + // Ownership of |data| belongs to the caller, hence the contents should be |
| + // consumed before the call returns, i.e., pointer should not dereferenced |
| + // after the function returns. |
| + virtual void OnPacketReceived(const uint8* data, size_t length) = 0; |
| + virtual void OnPlatformMessage(uint32 connection_state) = 0; |
| +}; |
|
stevenjb
2014/10/29 18:14:56
This should be in a separate file (both for readab
kaliamoorthi
2014/10/30 13:09:05
Done.
|
| + |
| +// 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: |
| + virtual ~ShillThirdPartyVpnDriverClient(); |
| + |
| + // 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 VoidDBusMethodCallback& callback) = 0; |
| + |
| + // Calls UpdateConnectionState method. |
| + // |callback| is called after the method call succeeds. |
| + virtual void UpdateConnectionState( |
| + const dbus::ObjectPath& object_path, |
| + const uint32 connection_state, |
| + const VoidDBusMethodCallback& callback) = 0; |
| + |
| + // Calls SendPacket method. |
| + // |callback| is called after the method call succeeds. |
| + virtual void SendPacket(const dbus::ObjectPath& object_path, |
| + const std::vector<uint8>& ip_packet, |
| + const VoidDBusMethodCallback& callback) = 0; |
| + |
| + protected: |
| + // Create() should be used instead. |
| + ShillThirdPartyVpnDriverClient(); |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(ShillThirdPartyVpnDriverClient); |
| +}; |
| + |
| +} // namespace chromeos |
| + |
| +#endif // CHROMEOS_DBUS_SHILL_THIRD_PARTY_VPN_DRIVER_CLIENT_H_ |