Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: extensions/browser/stash_backend.cc

Issue 638273004: Move stash_backend into extensions/browser/mojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « extensions/browser/stash_backend.h ('k') | extensions/browser/stash_backend_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 #include "extensions/browser/stash_backend.h"
6
7 namespace extensions {
8
9 // An implementation of StashService that forwards calls to a StashBackend.
10 class StashServiceImpl : public mojo::InterfaceImpl<StashService> {
11 public:
12 explicit StashServiceImpl(base::WeakPtr<StashBackend> backend);
13 ~StashServiceImpl() override;
14
15 // mojo::InterfaceImpl<StashService> overrides.
16 void AddToStash(mojo::Array<StashedObjectPtr> stash) override;
17 void RetrieveStash(
18 const mojo::Callback<void(mojo::Array<StashedObjectPtr> stash)>& callback)
19 override;
20
21 private:
22 base::WeakPtr<StashBackend> backend_;
23
24 DISALLOW_COPY_AND_ASSIGN(StashServiceImpl);
25 };
26
27 StashBackend::StashBackend() : weak_factory_(this) {
28 }
29
30 StashBackend::~StashBackend() {
31 }
32
33 void StashBackend::AddToStash(mojo::Array<StashedObjectPtr> stashed_objects) {
34 for (size_t i = 0; i < stashed_objects.size(); i++) {
35 stashed_objects_.push_back(stashed_objects[i].Pass());
36 }
37 }
38
39 mojo::Array<StashedObjectPtr> StashBackend::RetrieveStash() {
40 if (stashed_objects_.is_null())
41 stashed_objects_.resize(0);
42 return stashed_objects_.Pass();
43 }
44
45 void StashBackend::BindToRequest(mojo::InterfaceRequest<StashService> request) {
46 mojo::BindToRequest(new StashServiceImpl(weak_factory_.GetWeakPtr()),
47 &request);
48 }
49
50 StashServiceImpl::StashServiceImpl(base::WeakPtr<StashBackend> backend)
51 : backend_(backend) {
52 }
53
54 StashServiceImpl::~StashServiceImpl() {
55 }
56
57 void StashServiceImpl::AddToStash(
58 mojo::Array<StashedObjectPtr> stashed_objects) {
59 if (!backend_)
60 return;
61 backend_->AddToStash(stashed_objects.Pass());
62 }
63
64 void StashServiceImpl::RetrieveStash(
65 const mojo::Callback<void(mojo::Array<StashedObjectPtr>)>& callback) {
66 if (!backend_) {
67 callback.Run(mojo::Array<StashedObjectPtr>(0));
68 return;
69 }
70 callback.Run(backend_->RetrieveStash());
71 }
72
73 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/stash_backend.h ('k') | extensions/browser/stash_backend_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698