1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef REMOTING_HOST_PAIRING_REGISTRY_DELEGATE_H_
6#define REMOTING_HOST_PAIRING_REGISTRY_DELEGATE_H_
7
8#include "base/memory/ref_counted.h"
9#include "base/memory/scoped_ptr.h"
10#include "remoting/protocol/pairing_registry.h"
11
12namespace base {
13class SingleThreadTaskRunner;
14}  // namespace base
15
16namespace remoting {
17// Returns a platform-specific pairing registry delegate that will save to
18// permanent storage. Returns NULL on platforms that don't support pairing.
19scoped_ptr<protocol::PairingRegistry::Delegate>
20CreatePairingRegistryDelegate();
21
22// Convenience function which returns a new PairingRegistry, using the delegate
23// returned by CreatePairingRegistryDelegate(). The passed |task_runner| is used
24// to run the delegate's methods asynchronously.
25scoped_refptr<protocol::PairingRegistry> CreatePairingRegistry(
26    scoped_refptr<base::SingleThreadTaskRunner> task_runner);
27
28}  // namespace remoting
29
30#endif  // REMOTING_HOST_PAIRING_REGISTRY_DELEGATE_H_
31