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

Side by Side Diff: Source/platform/CrossThreadCopier.h

Issue 301243015: Refactor ThreadableLoaderOptions for readability (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase 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 | « Source/core/xml/XMLHttpRequest.cpp ('k') | Source/web/AssociatedURLLoader.cpp » ('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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 class IntRect; 45 class IntRect;
46 class IntSize; 46 class IntSize;
47 class KURL; 47 class KURL;
48 class ResourceError; 48 class ResourceError;
49 class ResourceRequest; 49 class ResourceRequest;
50 class ResourceResponse; 50 class ResourceResponse;
51 struct CrossThreadResourceResponseData; 51 struct CrossThreadResourceResponseData;
52 struct CrossThreadResourceRequestData; 52 struct CrossThreadResourceRequestData;
53 struct ThreadableLoaderOptions; 53 struct ThreadableLoaderOptions;
54 struct ResourceLoaderOptions;
54 55
55 template<typename T> struct CrossThreadCopierPassThrough { 56 template<typename T> struct CrossThreadCopierPassThrough {
56 typedef T Type; 57 typedef T Type;
57 static Type copy(const T& parameter) 58 static Type copy(const T& parameter)
58 { 59 {
59 return parameter; 60 return parameter;
60 } 61 }
61 }; 62 };
62 63
63 template<bool isConvertibleToInteger, bool isThreadSafeRefCounted, typename T> struct CrossThreadCopierBase; 64 template<bool isConvertibleToInteger, bool isThreadSafeRefCounted, typename T> struct CrossThreadCopierBase;
64 65
65 // Integers get passed through without any changes. 66 // Integers get passed through without any changes.
66 template<typename T> struct CrossThreadCopierBase<true, false, T> : public C rossThreadCopierPassThrough<T> { 67 template<typename T> struct CrossThreadCopierBase<true, false, T> : public C rossThreadCopierPassThrough<T> {
67 }; 68 };
68 69
69 // To allow a type to be passed across threads using its copy constructor, a dd a forward declaration of the type and 70 // To allow a type to be passed across threads using its copy constructor, a dd a forward declaration of the type and
70 // a CopyThreadCopierBase<false, false, TypeName> : public CrossThreadCopier PassThrough<TypeName> { }; to this file. 71 // a CopyThreadCopierBase<false, false, TypeName> : public CrossThreadCopier PassThrough<TypeName> { }; to this file.
71 template<> struct CrossThreadCopierBase<false, false, ThreadableLoaderOption s> : public CrossThreadCopierPassThrough<ThreadableLoaderOptions> { 72 template<> struct CrossThreadCopierBase<false, false, ThreadableLoaderOption s> : public CrossThreadCopierPassThrough<ThreadableLoaderOptions> {
72 }; 73 };
73 74
75 template<> struct CrossThreadCopierBase<false, false, ResourceLoaderOptions> : public CrossThreadCopierPassThrough<ResourceLoaderOptions> {
76 };
77
74 template<> struct CrossThreadCopierBase<false, false, IntRect> : public Cros sThreadCopierPassThrough<IntRect> { 78 template<> struct CrossThreadCopierBase<false, false, IntRect> : public Cros sThreadCopierPassThrough<IntRect> {
75 }; 79 };
76 80
77 template<> struct CrossThreadCopierBase<false, false, IntSize> : public Cros sThreadCopierPassThrough<IntSize> { 81 template<> struct CrossThreadCopierBase<false, false, IntSize> : public Cros sThreadCopierPassThrough<IntSize> {
78 }; 82 };
79 83
80 // Custom copy methods. 84 // Custom copy methods.
81 template<typename T> struct CrossThreadCopierBase<false, true, T> { 85 template<typename T> struct CrossThreadCopierBase<false, true, T> {
82 typedef typename WTF::RemoveTemplate<T, RefPtr>::Type TypeWithoutRefPtr; 86 typedef typename WTF::RemoveTemplate<T, RefPtr>::Type TypeWithoutRefPtr;
83 typedef typename WTF::RemoveTemplate<TypeWithoutRefPtr, PassRefPtr>::Typ e TypeWithoutPassRefPtr; 87 typedef typename WTF::RemoveTemplate<TypeWithoutRefPtr, PassRefPtr>::Typ e TypeWithoutPassRefPtr;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 175
172 template<typename T> AllowAccessLaterWrapper<T> AllowAccessLater(T* value) 176 template<typename T> AllowAccessLaterWrapper<T> AllowAccessLater(T* value)
173 { 177 {
174 return AllowAccessLaterWrapper<T>(value); 178 return AllowAccessLaterWrapper<T>(value);
175 } 179 }
176 180
177 181
178 } // namespace WebCore 182 } // namespace WebCore
179 183
180 #endif // CrossThreadCopier_h 184 #endif // CrossThreadCopier_h
OLDNEW
« no previous file with comments | « Source/core/xml/XMLHttpRequest.cpp ('k') | Source/web/AssociatedURLLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698