 Chromium Code Reviews
 Chromium Code Reviews Issue 681723003:
  Add new shill client for VPN  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 681723003:
  Add new shill client for VPN  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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_ |