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..eec7b95784bbec52558bf67f1c91a182b5050556 |
| --- /dev/null |
| +++ b/chromeos/dbus/shill_third_party_vpn_driver_client.h |
| @@ -0,0 +1,115 @@ |
| +// 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 shill { |
| + |
| +// TODO(kaliamoorthi): Move these constants to dbus/service_constants.h |
| +const char kFlimflamThirdPartyVpnInterface[] = |
| + "org.chromium.flimflam.ThirdPartyVpn"; |
| +const char kSetParametersFunction[] = "SetParameters"; |
| +const char kSendPacketFunction[] = "SendPacket"; |
| +const char kUpdateConnectionStateFunction[] = "UpdateConnectionState"; |
| +const char kOnPacketReceivedFunction[] = "OnPacketReceived"; |
| +const char kOnPlatformMessageFunction[] = "OnPlatformMessage"; |
| + |
| +const char kAddressParameterThirdPartyVpn[] = "address"; |
| +const char kBroadcastAddressParameterThirdPartyVpn[] = "broadcast_address"; |
| +const char kGatewayParameterThirdPartyVpn[] = "gateway"; |
| +const char kBypassTunnelForIpParameterThirdPartyVpn[] = "bypass_tunnel_for_ip"; |
| +const char kSubnetPrefixParameterThirdPartyVpn[] = "subnet_prefix"; |
| +const char kMtuParameterThirdPartyVpn[] = "mtu"; |
| +const char kDomainSearchParameterThirdPartyVpn[] = "domain_search"; |
| +const char kDnsServersParameterThirdPartyVpn[] = "dns_servers"; |
| + |
| +extern const char* kSetParametersKeyList[]; |
|
stevenjb
2014/10/31 16:35:42
Don't expose this. See comment in .cc file.
kaliamoorthi
2014/11/03 10:55:38
Done.
|
| + |
| +} // namespace shill |
| + |
| +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 uint8* data, |
| + size_t length) = 0; |
| + virtual void OnPlatformMessage(const dbus::ObjectPath& object_path, |
| + uint32 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 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; |
| + |
| + // 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_ |