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..5f5ebda576d933407141fb17c4e2b9f03f27fad4 |
| --- /dev/null |
| +++ b/chromeos/dbus/shill_third_party_vpn_driver_client.h |
| @@ -0,0 +1,113 @@ |
| +// 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" |
|
pneubeck (no reviews)
2014/11/10 16:44:08
should be base/macros.h if it's for DISALLOW_COPY_
kaliamoorthi
2014/11/11 14:58:34
This is included for uint32 etc.
|
| +#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" |
|
pneubeck (no reviews)
2014/11/10 16:44:08
nit: forward declare ObjectPath instead of includi
kaliamoorthi
2014/11/11 14:58:34
This is necessary for a kind of dependency injecti
pneubeck (no reviews)
2014/11/12 14:21:07
This doesn't sound right to me.
You should only us
|
| + |
| +namespace shill { |
| + |
| +// TODO(kaliamoorthi): Move these constants to dbus/service_constants.h |
|
pneubeck (no reviews)
2014/11/10 16:44:08
please roll the cros_system dependency at first, i
kaliamoorthi
2014/11/11 14:58:34
Done.
|
| +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"; |
| + |
| +} // 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, |
|
pneubeck (no reviews)
2014/11/11 13:17:16
like for the observer, you should consider using s
kaliamoorthi
2014/11/11 14:58:34
Done.
|
| + 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 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 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_ |