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

Side by Side Diff: trunk/Source/core/dom/CrossThreadTask.h

Issue 309503013: Revert 174956 "Oilpan: Move ThreadableWebSocketChannelClientWrap..." (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | trunk/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009-2010 Google Inc. All rights reserved. 2 * Copyright (C) 2009-2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 }; 50 };
51 51
52 template<typename T> struct CrossThreadTaskTraits<PassRefPtr<T> > { 52 template<typename T> struct CrossThreadTaskTraits<PassRefPtr<T> > {
53 typedef PassRefPtr<T> ParamType; 53 typedef PassRefPtr<T> ParamType;
54 }; 54 };
55 55
56 template<typename T> struct CrossThreadTaskTraits<PassOwnPtr<T> > { 56 template<typename T> struct CrossThreadTaskTraits<PassOwnPtr<T> > {
57 typedef PassOwnPtr<T> ParamType; 57 typedef PassOwnPtr<T> ParamType;
58 }; 58 };
59 59
60 // FIXME: Oilpan: Using a RawPtr is not safe.
61 // We need to move ExecutionContextTask to the heap and make this a Member.
62 template<typename T> struct CrossThreadTaskTraits<RawPtr<T> > {
63 typedef RawPtr<T> ParamType;
64 };
65
66 template<typename P1, typename MP1> 60 template<typename P1, typename MP1>
67 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask1 : public ExecutionCo ntextTask { 61 class CrossThreadTask1 : public ExecutionContextTask {
68 public: 62 public:
69 typedef void (*Method)(ExecutionContext*, MP1); 63 typedef void (*Method)(ExecutionContext*, MP1);
70 typedef CrossThreadTask1<P1, MP1> CrossThreadTask; 64 typedef CrossThreadTask1<P1, MP1> CrossThreadTask;
71 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 65 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
72 66
73 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1) 67 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1)
74 { 68 {
75 return adoptPtr(new CrossThreadTask(method, parameter1)); 69 return adoptPtr(new CrossThreadTask(method, parameter1));
76 } 70 }
77 71
78 private: 72 private:
79 CrossThreadTask1(Method method, Param1 parameter1) 73 CrossThreadTask1(Method method, Param1 parameter1)
80 : m_method(method) 74 : m_method(method)
81 , m_parameter1(parameter1) 75 , m_parameter1(parameter1)
82 { 76 {
83 } 77 }
84 78
85 virtual void performTask(ExecutionContext* context) 79 virtual void performTask(ExecutionContext* context)
86 { 80 {
87 (*m_method)(context, m_parameter1); 81 (*m_method)(context, m_parameter1);
88 } 82 }
89 83
90 private: 84 private:
91 Method m_method; 85 Method m_method;
92 P1 m_parameter1; 86 P1 m_parameter1;
93 }; 87 };
94 88
95 template<typename P1, typename MP1, typename P2, typename MP2> 89 template<typename P1, typename MP1, typename P2, typename MP2>
96 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask2 : public ExecutionCo ntextTask { 90 class CrossThreadTask2 : public ExecutionContextTask {
97 public: 91 public:
98 typedef void (*Method)(ExecutionContext*, MP1, MP2); 92 typedef void (*Method)(ExecutionContext*, MP1, MP2);
99 typedef CrossThreadTask2<P1, MP1, P2, MP2> CrossThreadTask; 93 typedef CrossThreadTask2<P1, MP1, P2, MP2> CrossThreadTask;
100 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 94 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
101 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 95 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
102 96
103 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2) 97 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2)
104 { 98 {
105 return adoptPtr(new CrossThreadTask(method, parameter1, parameter2)); 99 return adoptPtr(new CrossThreadTask(method, parameter1, parameter2));
106 } 100 }
(...skipping 11 matching lines...) Expand all
118 (*m_method)(context, m_parameter1, m_parameter2); 112 (*m_method)(context, m_parameter1, m_parameter2);
119 } 113 }
120 114
121 private: 115 private:
122 Method m_method; 116 Method m_method;
123 P1 m_parameter1; 117 P1 m_parameter1;
124 P2 m_parameter2; 118 P2 m_parameter2;
125 }; 119 };
126 120
127 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3> 121 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3>
128 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask3 : public ExecutionCo ntextTask { 122 class CrossThreadTask3 : public ExecutionContextTask {
129 public: 123 public:
130 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3); 124 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3);
131 typedef CrossThreadTask3<P1, MP1, P2, MP2, P3, MP3> CrossThreadTask; 125 typedef CrossThreadTask3<P1, MP1, P2, MP2, P3, MP3> CrossThreadTask;
132 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 126 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
133 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 127 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
134 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 128 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
135 129
136 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3) 130 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3)
137 { 131 {
138 return adoptPtr(new CrossThreadTask(method, parameter1, parameter2, para meter3)); 132 return adoptPtr(new CrossThreadTask(method, parameter1, parameter2, para meter3));
(...skipping 14 matching lines...) Expand all
153 } 147 }
154 148
155 private: 149 private:
156 Method m_method; 150 Method m_method;
157 P1 m_parameter1; 151 P1 m_parameter1;
158 P2 m_parameter2; 152 P2 m_parameter2;
159 P3 m_parameter3; 153 P3 m_parameter3;
160 }; 154 };
161 155
162 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4> 156 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4>
163 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask4 : public ExecutionCo ntextTask { 157 class CrossThreadTask4 : public ExecutionContextTask {
164 public: 158 public:
165 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4); 159 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4);
166 typedef CrossThreadTask4<P1, MP1, P2, MP2, P3, MP3, P4, MP4> CrossThreadTask ; 160 typedef CrossThreadTask4<P1, MP1, P2, MP2, P3, MP3, P4, MP4> CrossThreadTask ;
167 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 161 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
168 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 162 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
169 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 163 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
170 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4; 164 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4;
171 165
172 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4) 166 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4)
173 { 167 {
(...skipping 17 matching lines...) Expand all
191 185
192 private: 186 private:
193 Method m_method; 187 Method m_method;
194 P1 m_parameter1; 188 P1 m_parameter1;
195 P2 m_parameter2; 189 P2 m_parameter2;
196 P3 m_parameter3; 190 P3 m_parameter3;
197 P4 m_parameter4; 191 P4 m_parameter4;
198 }; 192 };
199 193
200 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5> 194 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5>
201 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask5 : public ExecutionCo ntextTask { 195 class CrossThreadTask5 : public ExecutionContextTask {
202 public: 196 public:
203 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5); 197 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5);
204 typedef CrossThreadTask5<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5> CrossT hreadTask; 198 typedef CrossThreadTask5<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5> CrossT hreadTask;
205 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 199 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
206 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 200 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
207 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 201 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
208 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4; 202 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4;
209 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5; 203 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5;
210 204
211 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5) 205 static PassOwnPtr<CrossThreadTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5)
(...skipping 20 matching lines...) Expand all
232 private: 226 private:
233 Method m_method; 227 Method m_method;
234 P1 m_parameter1; 228 P1 m_parameter1;
235 P2 m_parameter2; 229 P2 m_parameter2;
236 P3 m_parameter3; 230 P3 m_parameter3;
237 P4 m_parameter4; 231 P4 m_parameter4;
238 P5 m_parameter5; 232 P5 m_parameter5;
239 }; 233 };
240 234
241 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6> 235 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6>
242 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask6 : public ExecutionCo ntextTask { 236 class CrossThreadTask6 : public ExecutionContextTask {
243 public: 237 public:
244 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6); 238 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6);
245 typedef CrossThreadTask6<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6> CrossThreadTask; 239 typedef CrossThreadTask6<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6> CrossThreadTask;
246 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 240 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
247 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 241 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
248 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 242 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
249 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4; 243 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4;
250 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5; 244 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5;
251 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6; 245 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6;
252 246
(...skipping 23 matching lines...) Expand all
276 Method m_method; 270 Method m_method;
277 P1 m_parameter1; 271 P1 m_parameter1;
278 P2 m_parameter2; 272 P2 m_parameter2;
279 P3 m_parameter3; 273 P3 m_parameter3;
280 P4 m_parameter4; 274 P4 m_parameter4;
281 P5 m_parameter5; 275 P5 m_parameter5;
282 P6 m_parameter6; 276 P6 m_parameter6;
283 }; 277 };
284 278
285 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6, typename P7, typename MP7> 279 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6, typename P7, typename MP7>
286 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask7 : public ExecutionCo ntextTask { 280 class CrossThreadTask7 : public ExecutionContextTask {
287 public: 281 public:
288 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7) ; 282 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7) ;
289 typedef CrossThreadTask7<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6, P7, MP7> CrossThreadTask; 283 typedef CrossThreadTask7<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6, P7, MP7> CrossThreadTask;
290 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 284 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
291 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 285 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
292 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 286 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
293 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4; 287 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4;
294 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5; 288 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5;
295 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6; 289 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6;
296 typedef typename CrossThreadTaskTraits<P7>::ParamType Param7; 290 typedef typename CrossThreadTaskTraits<P7>::ParamType Param7;
(...skipping 26 matching lines...) Expand all
323 P1 m_parameter1; 317 P1 m_parameter1;
324 P2 m_parameter2; 318 P2 m_parameter2;
325 P3 m_parameter3; 319 P3 m_parameter3;
326 P4 m_parameter4; 320 P4 m_parameter4;
327 P5 m_parameter5; 321 P5 m_parameter5;
328 P6 m_parameter6; 322 P6 m_parameter6;
329 P7 m_parameter7; 323 P7 m_parameter7;
330 }; 324 };
331 325
332 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6, typename P7, typename MP7, typename P8, typename MP8> 326 template<typename P1, typename MP1, typename P2, typename MP2, typename P3, type name MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typ ename MP6, typename P7, typename MP7, typename P8, typename MP8>
333 class GC_PLUGIN_IGNORE("crbug.com/378192") CrossThreadTask8 : public ExecutionCo ntextTask { 327 class CrossThreadTask8 : public ExecutionContextTask {
334 public: 328 public:
335 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8); 329 typedef void (*Method)(ExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8);
336 typedef CrossThreadTask8<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6, P7, MP7, P8, MP8> CrossThreadTask; 330 typedef CrossThreadTask8<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP 6, P7, MP7, P8, MP8> CrossThreadTask;
337 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; 331 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1;
338 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2; 332 typedef typename CrossThreadTaskTraits<P2>::ParamType Param2;
339 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3; 333 typedef typename CrossThreadTaskTraits<P3>::ParamType Param3;
340 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4; 334 typedef typename CrossThreadTaskTraits<P4>::ParamType Param4;
341 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5; 335 typedef typename CrossThreadTaskTraits<P5>::ParamType Param5;
342 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6; 336 typedef typename CrossThreadTaskTraits<P6>::ParamType Param6;
343 typedef typename CrossThreadTaskTraits<P7>::ParamType Param7; 337 typedef typename CrossThreadTaskTraits<P7>::ParamType Param7;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 method, 468 method,
475 CrossThreadCopier<P1>::co py(parameter1), CrossThreadCopier<P2>::copy(parameter2), 469 CrossThreadCopier<P1>::co py(parameter1), CrossThreadCopier<P2>::copy(parameter2),
476 CrossThreadCopier<P3>::co py(parameter3), CrossThreadCopier<P4>::copy(parameter4), 470 CrossThreadCopier<P3>::co py(parameter3), CrossThreadCopier<P4>::copy(parameter4),
477 CrossThreadCopier<P5>::co py(parameter5), CrossThreadCopier<P6>::copy(parameter6), 471 CrossThreadCopier<P5>::co py(parameter5), CrossThreadCopier<P6>::copy(parameter6),
478 CrossThreadCopier<P7>::co py(parameter7), CrossThreadCopier<P8>::copy(parameter8)); 472 CrossThreadCopier<P7>::co py(parameter7), CrossThreadCopier<P8>::copy(parameter8));
479 } 473 }
480 474
481 } // namespace WebCore 475 } // namespace WebCore
482 476
483 #endif // CrossThreadTask_h 477 #endif // CrossThreadTask_h
OLDNEW
« no previous file with comments | « no previous file | trunk/Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698