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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 "sk_sp<T> can be passed across threads only if T is SkRefCnt."); | 118 "sk_sp<T> can be passed across threads only if T is SkRefCnt."); |
119 }; | 119 }; |
120 | 120 |
121 // nullptr_t can be passed through without any changes. | 121 // nullptr_t can be passed through without any changes. |
122 template <> | 122 template <> |
123 struct CrossThreadCopier<std::nullptr_t> | 123 struct CrossThreadCopier<std::nullptr_t> |
124 : public CrossThreadCopierPassThrough<std::nullptr_t> { | 124 : public CrossThreadCopierPassThrough<std::nullptr_t> { |
125 STATIC_ONLY(CrossThreadCopier); | 125 STATIC_ONLY(CrossThreadCopier); |
126 }; | 126 }; |
127 | 127 |
128 // To allow a type to be passed across threads using its copy constructor, add a
forward declaration of the type and | 128 // To allow a type to be passed across threads using its copy constructor, add a |
129 // provide a specialization of CrossThreadCopier<T> in this file, like IntRect b
elow. | 129 // forward declaration of the type and provide a specialization of |
| 130 // CrossThreadCopier<T> in this file, like IntRect below. |
130 template <> | 131 template <> |
131 struct CrossThreadCopier<IntRect> | 132 struct CrossThreadCopier<IntRect> |
132 : public CrossThreadCopierPassThrough<IntRect> { | 133 : public CrossThreadCopierPassThrough<IntRect> { |
133 STATIC_ONLY(CrossThreadCopier); | 134 STATIC_ONLY(CrossThreadCopier); |
134 }; | 135 }; |
135 | 136 |
136 template <> | 137 template <> |
137 struct CrossThreadCopier<IntSize> | 138 struct CrossThreadCopier<IntSize> |
138 : public CrossThreadCopierPassThrough<IntSize> { | 139 : public CrossThreadCopierPassThrough<IntSize> { |
139 STATIC_ONLY(CrossThreadCopier); | 140 STATIC_ONLY(CrossThreadCopier); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 struct CrossThreadCopier<ResourceResponse> { | 216 struct CrossThreadCopier<ResourceResponse> { |
216 STATIC_ONLY(CrossThreadCopier); | 217 STATIC_ONLY(CrossThreadCopier); |
217 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceResponseData>> | 218 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceResponseData>> |
218 Type; | 219 Type; |
219 PLATFORM_EXPORT static Type copy(const ResourceResponse&); | 220 PLATFORM_EXPORT static Type copy(const ResourceResponse&); |
220 }; | 221 }; |
221 | 222 |
222 } // namespace blink | 223 } // namespace blink |
223 | 224 |
224 #endif // CrossThreadCopier_h | 225 #endif // CrossThreadCopier_h |
OLD | NEW |