OLD | NEW |
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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 // Traits for the CrossThreadTask. They are used to map a cross-thread-capable | 43 // Traits for the CrossThreadTask. They are used to map a cross-thread-capable |
44 // copied type to a CrossThreadTask constructor parameter type. | 44 // copied type to a CrossThreadTask constructor parameter type. |
45 template<typename T> struct CrossThreadTaskTraits { | 45 template<typename T> struct CrossThreadTaskTraits { |
46 typedef const T& ParamType; | 46 typedef const T& ParamType; |
47 }; | 47 }; |
48 | 48 |
49 // We can copy pointer-like values. | 49 // We can copy pointer-like values. |
50 template<typename T> struct CrossThreadTaskTraits<T*> { | 50 template<typename T> struct CrossThreadTaskTraits<T*> { |
51 typedef T* ParamType; | 51 typedef T* ParamType; |
52 }; | 52 }; |
53 template<typename T> struct CrossThreadTaskTraits<PassRefPtr<T> > { | 53 template<typename T> struct CrossThreadTaskTraits<PassRefPtr<T>> { |
54 typedef PassRefPtr<T> ParamType; | 54 typedef PassRefPtr<T> ParamType; |
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 template<typename T> struct CrossThreadTaskTraits<RawPtr<T> > { | 59 template<typename T> struct CrossThreadTaskTraits<RawPtr<T>> { |
60 typedef RawPtr<T> ParamType; | 60 typedef RawPtr<T> ParamType; |
61 }; | 61 }; |
62 | 62 |
63 template<typename P1, typename MP1> | 63 template<typename P1, typename MP1> |
64 class CrossThreadTask1 : public ExecutionContextTask { | 64 class CrossThreadTask1 : public ExecutionContextTask { |
65 public: | 65 public: |
66 typedef void (*Method)(ExecutionContext*, MP1); | 66 typedef void (*Method)(ExecutionContext*, MP1); |
67 typedef CrossThreadTask1<P1, MP1> CrossThreadTask; | 67 typedef CrossThreadTask1<P1, MP1> CrossThreadTask; |
68 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; | 68 typedef typename CrossThreadTaskTraits<P1>::ParamType Param1; |
69 | 69 |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 CrossThreadCopier<P2>::copy(parameter2), | 745 CrossThreadCopier<P2>::copy(parameter2), |
746 CrossThreadCopier<P3>::copy(parameter3), | 746 CrossThreadCopier<P3>::copy(parameter3), |
747 CrossThreadCopier<P4>::copy(parameter4), | 747 CrossThreadCopier<P4>::copy(parameter4), |
748 CrossThreadCopier<P5>::copy(parameter5), | 748 CrossThreadCopier<P5>::copy(parameter5), |
749 CrossThreadCopier<P6>::copy(parameter6))); | 749 CrossThreadCopier<P6>::copy(parameter6))); |
750 } | 750 } |
751 | 751 |
752 } // namespace blink | 752 } // namespace blink |
753 | 753 |
754 #endif // CrossThreadTask_h | 754 #endif // CrossThreadTask_h |
OLD | NEW |