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

Side by Side Diff: ppapi/proxy/ppapi_message_utils.h

Issue 1673563002: Replace base::Tuple implementation with std::tuple (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 | « ipc/ipc_message_utils.h ('k') | styleguide/c++/c++11.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_ 5 #ifndef PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_
6 #define PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_ 6 #define PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_
7 7
8 #include "base/pickle.h" 8 #include "base/pickle.h"
9 #include "base/tuple.h" 9 #include "base/tuple.h"
10 #include "ipc/ipc_message.h" 10 #include "ipc/ipc_message.h"
11 #include "ipc/ipc_message_utils.h" 11 #include "ipc/ipc_message_utils.h"
12 12
13 namespace ppapi { 13 namespace ppapi {
14 14
15 namespace internal { 15 namespace internal {
16 16
17 // TupleTypeMatch* check whether a tuple type contains elements of the specified 17 // TupleTypeMatch* check whether a tuple type contains elements of the specified
18 // types. They are used to make sure the output parameters of UnpackMessage() 18 // types. They are used to make sure the output parameters of UnpackMessage()
19 // match the corresponding message type. 19 // match the corresponding message type.
20 template <class TupleType, class A> 20 template <class TupleType, class A>
21 struct TupleTypeMatch1 { 21 struct TupleTypeMatch1 {
22 static const bool kValue = false; 22 static const bool kValue = false;
23 }; 23 };
24 template <class A> 24 template <class A>
25 struct TupleTypeMatch1<base::Tuple<A>, A> { 25 struct TupleTypeMatch1<std::tuple<A>, A> {
26 static const bool kValue = true; 26 static const bool kValue = true;
27 }; 27 };
28 28
29 template <class TupleType, class A, class B> 29 template <class TupleType, class A, class B>
30 struct TupleTypeMatch2 { 30 struct TupleTypeMatch2 {
31 static const bool kValue = false; 31 static const bool kValue = false;
32 }; 32 };
33 template <class A, class B> 33 template <class A, class B>
34 struct TupleTypeMatch2<base::Tuple<A, B>, A, B> { 34 struct TupleTypeMatch2<std::tuple<A, B>, A, B> {
35 static const bool kValue = true; 35 static const bool kValue = true;
36 }; 36 };
37 37
38 template <class TupleType, class A, class B, class C> 38 template <class TupleType, class A, class B, class C>
39 struct TupleTypeMatch3 { 39 struct TupleTypeMatch3 {
40 static const bool kValue = false; 40 static const bool kValue = false;
41 }; 41 };
42 template <class A, class B, class C> 42 template <class A, class B, class C>
43 struct TupleTypeMatch3<base::Tuple<A, B, C>, A, B, C> { 43 struct TupleTypeMatch3<std::tuple<A, B, C>, A, B, C> {
44 static const bool kValue = true; 44 static const bool kValue = true;
45 }; 45 };
46 46
47 template <class TupleType, class A, class B, class C, class D> 47 template <class TupleType, class A, class B, class C, class D>
48 struct TupleTypeMatch4 { 48 struct TupleTypeMatch4 {
49 static const bool kValue = false; 49 static const bool kValue = false;
50 }; 50 };
51 template <class A, class B, class C, class D> 51 template <class A, class B, class C, class D>
52 struct TupleTypeMatch4<base::Tuple<A, B, C, D>, A, B, C, D> { 52 struct TupleTypeMatch4<std::tuple<A, B, C, D>, A, B, C, D> {
53 static const bool kValue = true; 53 static const bool kValue = true;
54 }; 54 };
55 55
56 template <class TupleType, class A, class B, class C, class D, class E> 56 template <class TupleType, class A, class B, class C, class D, class E>
57 struct TupleTypeMatch5 { 57 struct TupleTypeMatch5 {
58 static const bool kValue = false; 58 static const bool kValue = false;
59 }; 59 };
60 template <class A, class B, class C, class D, class E> 60 template <class A, class B, class C, class D, class E>
61 struct TupleTypeMatch5<base::Tuple<A, B, C, D, E>, A, B, C, D, E> { 61 struct TupleTypeMatch5<std::tuple<A, B, C, D, E>, A, B, C, D, E> {
62 static const bool kValue = true; 62 static const bool kValue = true;
63 }; 63 };
64 64
65 } // namespace internal 65 } // namespace internal
66 66
67 template <class MsgClass, class A> 67 template <class MsgClass, class A>
68 bool UnpackMessage(const IPC::Message& msg, A* a) { 68 bool UnpackMessage(const IPC::Message& msg, A* a) {
69 static_assert( 69 static_assert(
70 (internal::TupleTypeMatch1<typename MsgClass::Param, A>::kValue), 70 (internal::TupleTypeMatch1<typename MsgClass::Param, A>::kValue),
71 "tuple types should match"); 71 "tuple types should match");
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 return IPC::ReadParam(&msg, &iter, a) && 120 return IPC::ReadParam(&msg, &iter, a) &&
121 IPC::ReadParam(&msg, &iter, b) && 121 IPC::ReadParam(&msg, &iter, b) &&
122 IPC::ReadParam(&msg, &iter, c) && 122 IPC::ReadParam(&msg, &iter, c) &&
123 IPC::ReadParam(&msg, &iter, d) && 123 IPC::ReadParam(&msg, &iter, d) &&
124 IPC::ReadParam(&msg, &iter, e); 124 IPC::ReadParam(&msg, &iter, e);
125 } 125 }
126 126
127 } // namespace ppapi 127 } // namespace ppapi
128 128
129 #endif // PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_ 129 #endif // PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_
OLDNEW
« no previous file with comments | « ipc/ipc_message_utils.h ('k') | styleguide/c++/c++11.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698