| Index: remoting/host/pairing_registry_delegate_linux.h
 | 
| diff --git a/remoting/host/pairing_registry_delegate_linux.h b/remoting/host/pairing_registry_delegate_linux.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..08c073b533ce1078b6b0cabbf0ba5c7ad6541f32
 | 
| --- /dev/null
 | 
| +++ b/remoting/host/pairing_registry_delegate_linux.h
 | 
| @@ -0,0 +1,73 @@
 | 
| +// Copyright 2013 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 REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_
 | 
| +#define REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_
 | 
| +
 | 
| +#include "remoting/protocol/pairing_registry.h"
 | 
| +
 | 
| +#include "base/files/file_path.h"
 | 
| +#include "base/memory/weak_ptr.h"
 | 
| +
 | 
| +namespace base {
 | 
| +class ListValue;
 | 
| +class TaskRunner;
 | 
| +}  // namespace base
 | 
| +
 | 
| +namespace remoting {
 | 
| +
 | 
| +class PairingRegistryDelegateLinux
 | 
| +    : public protocol::PairingRegistry::Delegate {
 | 
| + public:
 | 
| +  explicit PairingRegistryDelegateLinux(
 | 
| +      scoped_refptr<base::TaskRunner> task_runner);
 | 
| +  virtual ~PairingRegistryDelegateLinux();
 | 
| +
 | 
| +  // PairingRegistry::Delegate interface
 | 
| +  virtual void Save(
 | 
| +      const std::string& pairings_json,
 | 
| +      const protocol::PairingRegistry::SaveCallback& callback) OVERRIDE;
 | 
| +  virtual void Load(
 | 
| +      const protocol::PairingRegistry::LoadCallback& callback) OVERRIDE;
 | 
| +
 | 
| + private:
 | 
| +  FRIEND_TEST_ALL_PREFIXES(PairingRegistryDelegateLinuxTest, SaveAndLoad);
 | 
| +
 | 
| +  // Blocking helper methods run using the TaskRunner passed to the ctor.
 | 
| +  void DoSave(const std::string& pairings_json,
 | 
| +              const protocol::PairingRegistry::SaveCallback& callback);
 | 
| +  void DoLoad(const protocol::PairingRegistry::LoadCallback& callback);
 | 
| +
 | 
| +  // Run the delegate callbacks on their original thread.
 | 
| +  static void RunSaveCallbackOnThread(
 | 
| +      scoped_refptr<base::TaskRunner> task_runner,
 | 
| +      const protocol::PairingRegistry::SaveCallback& callback,
 | 
| +      bool success);
 | 
| +  static void RunLoadCallbackOnThread(
 | 
| +      scoped_refptr<base::TaskRunner> task_runner,
 | 
| +      const protocol::PairingRegistry::LoadCallback& callback,
 | 
| +      const std::string& pairings_json);
 | 
| +
 | 
| +  // Helper methods to load and save the pairing registry.
 | 
| +  protocol::PairingRegistry::PairedClients LoadPairings();
 | 
| +  void SavePairings(
 | 
| +      const protocol::PairingRegistry::PairedClients& paired_clients);
 | 
| +
 | 
| +  // Return the path to the file to use for loading and saving paired clients.
 | 
| +  base::FilePath GetRegistryFilePath();
 | 
| +
 | 
| +  // For testing purposes, set the path returned by |GetRegistryFilePath|.
 | 
| +  void SetFilenameForTesting(const base::FilePath &filename);
 | 
| +
 | 
| +  scoped_refptr<base::TaskRunner> task_runner_;
 | 
| +  base::FilePath filename_for_testing_;
 | 
| +
 | 
| +  base::WeakPtrFactory<PairingRegistryDelegateLinux> weak_factory_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(PairingRegistryDelegateLinux);
 | 
| +};
 | 
| +
 | 
| +}  // namespace remoting
 | 
| +
 | 
| +#endif  // REMOTING_PROTOCOL_PAIRING_REGISTRY_DELEGATE_LINUX_H_
 | 
| 
 |