1// Copyright 2014 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 COMPONENTS_GCM_DRIVER_FAKE_GCM_CLIENT_FACTORY_H_
6#define COMPONENTS_GCM_DRIVER_FAKE_GCM_CLIENT_FACTORY_H_
7
8#include "base/compiler_specific.h"
9#include "base/macros.h"
10#include "components/gcm_driver/fake_gcm_client.h"
11#include "components/gcm_driver/gcm_client_factory.h"
12
13namespace base {
14class SequencedTaskRunner;
15}
16
17namespace gcm {
18
19class GCMClient;
20
21class FakeGCMClientFactory : public GCMClientFactory {
22 public:
23  FakeGCMClientFactory(
24      FakeGCMClient::StartMode gcm_client_start_mode,
25      const scoped_refptr<base::SequencedTaskRunner>& ui_thread,
26      const scoped_refptr<base::SequencedTaskRunner>& io_thread);
27  virtual ~FakeGCMClientFactory();
28
29  // GCMClientFactory:
30  virtual scoped_ptr<GCMClient> BuildInstance() OVERRIDE;
31
32 private:
33  FakeGCMClient::StartMode gcm_client_start_mode_;
34  scoped_refptr<base::SequencedTaskRunner> ui_thread_;
35  scoped_refptr<base::SequencedTaskRunner> io_thread_;
36
37  DISALLOW_COPY_AND_ASSIGN(FakeGCMClientFactory);
38};
39
40}  // namespace gcm
41
42#endif  // COMPONENTS_GCM_DRIVER_FAKE_GCM_CLIENT_FACTORY_H_
43