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

Side by Side Diff: third_party/WebKit/Source/platform/MojoHelper.h

Issue 1753543002: PaymentRequest Mojo bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@interface
Patch Set: haraken@'s + esprehn@'s comments Created 4 years, 8 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
OLDNEW
(Empty)
1 // Copyright 2016 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 MojoHelper_h
6 #define MojoHelper_h
7
8 #include "base/bind.h"
9 #include "mojo/public/cpp/bindings/callback.h"
10 #include "mojo/public/cpp/bindings/wtf_array.h"
11 #include "platform/heap/HeapAllocator.h"
12 #include <utility>
13
14 namespace blink {
15
16 // Binds an instance of a class to its member function. Does not bind anything
17 // else. Provides limited access to base::Bind() function. base::Bind() could
18 // be dangerous if it's used across threads, so we don't want to allow general
19 // use of base::Bind(). See also "platform/ThreadSafeFunctional.h".
20 template <typename Class, typename ReturnType, typename... Args>
21 mojo::Callback<ReturnType(Args...)>
22 sameThreadBindForMojo(ReturnType (Class::*method)(Args...), Class* instance)
23 {
24 return base::Bind(method, base::Unretained(instance));
25 }
26
27 } // namespace blink
28
29 namespace mojo {
30
31 // A |TypeConverter| that will create a |WTFArray<T>| containing a copy of the
32 // contents of a |blink::HeapVector<E>|, using |TypeConverter<T, E>| to copy
33 // each element. The returned array will always be non-null.
34 template <typename T, typename E>
35 struct TypeConverter<WTFArray<T>, blink::HeapVector<E>> {
36 static WTFArray<T> Convert(const blink::HeapVector<E>& input)
37 {
38 WTFArray<T> result(input.size());
39 for (size_t i = 0; i < input.size(); ++i)
40 result[i] = TypeConverter<T, E>::Convert(input[i]);
41 return std::move(result);
42 }
43 };
44
45 } // namespace mojo
46
47 #endif // MojoHelper_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698