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.
5 #ifndef SYNC_API_ATTACHMENTS_FAKE_ATTACHMENT_STORE_H_
6 #define SYNC_API_ATTACHMENTS_FAKE_ATTACHMENT_STORE_H_
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/stl_util.h"
13 #include "sync/api/attachments/attachment_store.h"
14 #include "sync/base/sync_export.h"
17 class SequencedTaskRunner
;
18 class SingleThreadTaskRunner
;
23 } // namespace sync_pb
29 // A in-memory only implementation of AttachmentStore used for testing.
31 // Requires that the current thread has a MessageLoop.
32 class SYNC_EXPORT FakeAttachmentStore
: public AttachmentStore
{
34 // Construct a FakeAttachmentStore whose "IO" will be performed in
35 // |backend_task_runner|.
36 explicit FakeAttachmentStore(
37 const scoped_refptr
<base::SequencedTaskRunner
>& backend_task_runner
);
39 virtual ~FakeAttachmentStore();
41 // AttachmentStore implementation.
42 virtual void Read(const AttachmentIdList
& id
,
43 const ReadCallback
& callback
) OVERRIDE
;
44 virtual void Write(const AttachmentList
& attachments
,
45 const WriteCallback
& callback
) OVERRIDE
;
46 virtual void Drop(const AttachmentIdList
& id
,
47 const DropCallback
& callback
) OVERRIDE
;
52 scoped_refptr
<Backend
> backend_
;
53 scoped_refptr
<base::SequencedTaskRunner
> backend_task_runner_
;
55 DISALLOW_COPY_AND_ASSIGN(FakeAttachmentStore
);
60 #endif // SYNC_API_ATTACHMENTS_FAKE_ATTACHMENT_STORE_H_