 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..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_ |