1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "remoting/protocol/pairing_registry.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/files/file_path.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace base { 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass ListValue; 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace base 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace remoting { 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass PairingRegistryDelegateLinux 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch : public protocol::PairingRegistry::Delegate { 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) PairingRegistryDelegateLinux(); 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~PairingRegistryDelegateLinux(); 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // PairingRegistry::Delegate interface 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual scoped_ptr<base::ListValue> LoadAll() OVERRIDE; 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool DeleteAll() OVERRIDE; 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual protocol::PairingRegistry::Pairing Load( 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) const std::string& client_id) OVERRIDE; 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Save(const protocol::PairingRegistry::Pairing& pairing) OVERRIDE; 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual bool Delete(const std::string& client_id) OVERRIDE; 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FRIEND_TEST_ALL_PREFIXES(PairingRegistryDelegateLinuxTest, SaveAndLoad); 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(PairingRegistryDelegateLinuxTest, Stateless); 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Return the path to the directory to use for loading and saving paired 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // clients. 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::FilePath GetRegistryPath(); 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // For testing purposes, set the path returned by |GetRegistryPath()|. 41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) void SetRegistryPathForTesting(const base::FilePath& registry_path); 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 43a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::FilePath registry_path_for_testing_; 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch DISALLOW_COPY_AND_ASSIGN(PairingRegistryDelegateLinux); 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace remoting 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_ 51