service_discovery_shared_client.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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 CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_SHARED_CLIENT_H_
6#define CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_SHARED_CLIENT_H_
7
8#include "chrome/common/local_discovery/service_discovery_client.h"
9
10namespace local_discovery {
11
12class ServiceDiscoverySharedClient
13    : public base::RefCounted<ServiceDiscoverySharedClient>,
14      public ServiceDiscoveryClient {
15 public:
16  static scoped_refptr<ServiceDiscoverySharedClient> GetInstance();
17
18  typedef base::Callback<void(
19      const scoped_refptr<ServiceDiscoverySharedClient>&)> GetInstanceCallback;
20  static void GetInstanceWithoutAlert(const GetInstanceCallback& callback);
21
22 protected:
23  ServiceDiscoverySharedClient();
24  virtual ~ServiceDiscoverySharedClient();
25
26 private:
27  friend class base::RefCounted<ServiceDiscoverySharedClient>;
28
29  DISALLOW_COPY_AND_ASSIGN(ServiceDiscoverySharedClient);
30};
31
32}  // namespace local_discovery
33
34#endif  // CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_SHARED_CLIENT_H_
35