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

Side by Side Diff: Source/heap/ThreadState.h

Issue 78053006: [oilpan] Move IDBDatabase, IDBDatabaseCallbacks, IDBDatabaseBackendInterface and other related clas… (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 template<typename T> 53 template<typename T>
54 struct ThreadingTrait { 54 struct ThreadingTrait {
55 static const ThreadAffinity Affinity = MainThreadOnly; 55 static const ThreadAffinity Affinity = MainThreadOnly;
56 }; 56 };
57 57
58 // Marks specified class as requiring thread safe handles which can be used from any thread. 58 // Marks specified class as requiring thread safe handles which can be used from any thread.
59 // Notice that marking base class does not automatically mark its descendants an d they 59 // Notice that marking base class does not automatically mark its descendants an d they
60 // have to be explicitly marked. 60 // have to be explicitly marked.
61 #define REQUIRE_THREADSAFE_HANDLES(Class) template<> struct ThreadingTrait<class Class> { static const ThreadAffinity Affinity = AnyThread; } 61 #define REQUIRE_THREADSAFE_HANDLES(Class) template<> struct ThreadingTrait<class Class> { static const ThreadAffinity Affinity = AnyThread; }
62 62
63 #define REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(Namespace, Class) \
64 namespace Namespace { class Class; } \
65 namespace WebCore { \
66 template<> struct ThreadingTrait<Namespace::Class> { \
67 static const ThreadAffinity Affinity = AnyThread; \
68 }; \
69 }
70
63 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { }; 71 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { };
64 72
65 class HeapObjectHeader; 73 class HeapObjectHeader;
66 class FinalizedHeapObjectHeader; 74 class FinalizedHeapObjectHeader;
67 template<typename Header> class ThreadHeap; 75 template<typename Header> class ThreadHeap;
68 76
69 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below. 77 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below.
70 #define FOR_EACH_TYPED_HEAP(H) \ 78 #define FOR_EACH_TYPED_HEAP(H) \
71 H(Node) 79 H(Node)
72 80
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 public: 312 public:
305 static ThreadState* State() { return ThreadState::MainThreadState(); } 313 static ThreadState* State() { return ThreadState::MainThreadState(); }
306 }; 314 };
307 315
308 template<> class ThreadStateFor<AnyThread> { 316 template<> class ThreadStateFor<AnyThread> {
309 public: 317 public:
310 static ThreadState* State() { return ThreadState::Current(); } 318 static ThreadState* State() { return ThreadState::Current(); }
311 }; 319 };
312 320
313 // FIXME(oilpan): find a better place for this. 321 // FIXME(oilpan): find a better place for this.
314 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext); 322 REQUIRE_THREADSAFE_HANDLES(ArrayBuffer);
323 REQUIRE_THREADSAFE_HANDLES(ArrayBufferView);
324 REQUIRE_THREADSAFE_HANDLES(Blob);
325 REQUIRE_THREADSAFE_HANDLES(DOMCoreException);
326 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem);
327 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync);
328 REQUIRE_THREADSAFE_HANDLES(DOMURL);
329 REQUIRE_THREADSAFE_HANDLES(DataView);
330 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext);
331 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry);
332 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync);
333 REQUIRE_THREADSAFE_HANDLES(DirectoryReder);
334 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync);
315 REQUIRE_THREADSAFE_HANDLES(Document); 335 REQUIRE_THREADSAFE_HANDLES(Document);
316 REQUIRE_THREADSAFE_HANDLES(WorkerContext); 336 REQUIRE_THREADSAFE_HANDLES(Entry);
317 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext); 337 REQUIRE_THREADSAFE_HANDLES(EntryArray);
318 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext); 338 REQUIRE_THREADSAFE_HANDLES(EntryArraySync);
339 REQUIRE_THREADSAFE_HANDLES(EntrySync);
340 REQUIRE_THREADSAFE_HANDLES(Event);
341 REQUIRE_THREADSAFE_HANDLES(EventSource);
319 REQUIRE_THREADSAFE_HANDLES(EventTarget); 342 REQUIRE_THREADSAFE_HANDLES(EventTarget);
320 REQUIRE_THREADSAFE_HANDLES(MessagePort); 343 REQUIRE_THREADSAFE_HANDLES(File);
344 REQUIRE_THREADSAFE_HANDLES(FileEntry);
345 REQUIRE_THREADSAFE_HANDLES(FileEntrySync);
346 REQUIRE_THREADSAFE_HANDLES(FileError);
347 REQUIRE_THREADSAFE_HANDLES(FileException);
321 REQUIRE_THREADSAFE_HANDLES(FileReader); 348 REQUIRE_THREADSAFE_HANDLES(FileReader);
322 REQUIRE_THREADSAFE_HANDLES(FileReaderSync); 349 REQUIRE_THREADSAFE_HANDLES(FileReaderSync);
323 REQUIRE_THREADSAFE_HANDLES(ProgressEvent); 350 REQUIRE_THREADSAFE_HANDLES(FileWriter);
324 REQUIRE_THREADSAFE_HANDLES(Event); 351 REQUIRE_THREADSAFE_HANDLES(FileWriterBase);
325 REQUIRE_THREADSAFE_HANDLES(FileError); 352 REQUIRE_THREADSAFE_HANDLES(FileWriterSync);
326 REQUIRE_THREADSAFE_HANDLES(FileException);
327 REQUIRE_THREADSAFE_HANDLES(Int8Array);
328 REQUIRE_THREADSAFE_HANDLES(Uint8ClampedArray);
329 REQUIRE_THREADSAFE_HANDLES(Uint8Array);
330 REQUIRE_THREADSAFE_HANDLES(Int16Array);
331 REQUIRE_THREADSAFE_HANDLES(Uint16Array);
332 REQUIRE_THREADSAFE_HANDLES(Int32Array);
333 REQUIRE_THREADSAFE_HANDLES(Uint32Array);
334 REQUIRE_THREADSAFE_HANDLES(Float32Array); 353 REQUIRE_THREADSAFE_HANDLES(Float32Array);
335 REQUIRE_THREADSAFE_HANDLES(Float64Array); 354 REQUIRE_THREADSAFE_HANDLES(Float64Array);
336 REQUIRE_THREADSAFE_HANDLES(ArrayBuffer);
337 REQUIRE_THREADSAFE_HANDLES(ArrayBufferView);
338 REQUIRE_THREADSAFE_HANDLES(DataView);
339 REQUIRE_THREADSAFE_HANDLES(DOMCoreException);
340 REQUIRE_THREADSAFE_HANDLES(DOMURL);
341 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest);
342 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException);
343 REQUIRE_THREADSAFE_HANDLES(Blob);
344 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem);
345 REQUIRE_THREADSAFE_HANDLES(Entry);
346 REQUIRE_THREADSAFE_HANDLES(FileEntry);
347 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry);
348 REQUIRE_THREADSAFE_HANDLES(DirectoryReder);
349 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync);
350 REQUIRE_THREADSAFE_HANDLES(EntrySync);
351 REQUIRE_THREADSAFE_HANDLES(FileEntrySync);
352 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync);
353 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync);
354 REQUIRE_THREADSAFE_HANDLES(EntryArray);
355 REQUIRE_THREADSAFE_HANDLES(EntryArraySync);
356 REQUIRE_THREADSAFE_HANDLES(FileWriterBase);
357 REQUIRE_THREADSAFE_HANDLES(FileWriter);
358 REQUIRE_THREADSAFE_HANDLES(FileWriterSync);
359 REQUIRE_THREADSAFE_HANDLES(File);
360 REQUIRE_THREADSAFE_HANDLES(WebSocket);
361 REQUIRE_THREADSAFE_HANDLES(EventSource);
362
363 REQUIRE_THREADSAFE_HANDLES(IDBAny); 355 REQUIRE_THREADSAFE_HANDLES(IDBAny);
364 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks); 356 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks);
365 REQUIRE_THREADSAFE_HANDLES(IDBCursor); 357 REQUIRE_THREADSAFE_HANDLES(IDBCursor);
366 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue); 358 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue);
367 REQUIRE_THREADSAFE_HANDLES(IDBDatabase); 359 REQUIRE_THREADSAFE_HANDLES(IDBDatabase);
360 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendImpl);
361 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendInterface);
362 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacks);
363 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacksImpl);
368 REQUIRE_THREADSAFE_HANDLES(IDBFactory); 364 REQUIRE_THREADSAFE_HANDLES(IDBFactory);
369 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl); 365 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl);
370 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface); 366 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface);
371 REQUIRE_THREADSAFE_HANDLES(IDBIndex); 367 REQUIRE_THREADSAFE_HANDLES(IDBIndex);
372 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange); 368 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange);
373 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore); 369 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore);
374 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest); 370 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest);
371 REQUIRE_THREADSAFE_HANDLES(IDBRequest);
375 REQUIRE_THREADSAFE_HANDLES(IDBTransaction); 372 REQUIRE_THREADSAFE_HANDLES(IDBTransaction);
376 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent); 373 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent);
377 REQUIRE_THREADSAFE_HANDLES(IDBRequest); 374 REQUIRE_THREADSAFE_HANDLES(Int16Array);
375 REQUIRE_THREADSAFE_HANDLES(Int32Array);
376 REQUIRE_THREADSAFE_HANDLES(Int8Array);
377 REQUIRE_THREADSAFE_HANDLES(MessagePort);
378 REQUIRE_THREADSAFE_HANDLES(ProgressEvent);
379 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext);
380 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext);
381 REQUIRE_THREADSAFE_HANDLES(Uint16Array);
382 REQUIRE_THREADSAFE_HANDLES(Uint32Array);
383 REQUIRE_THREADSAFE_HANDLES(Uint8Array);
384 REQUIRE_THREADSAFE_HANDLES(Uint8ClampedArray);
385 REQUIRE_THREADSAFE_HANDLES(WebSocket);
386 REQUIRE_THREADSAFE_HANDLES(WorkerContext);
387 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest);
388 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException);
378 389
379 } 390 }
380 391
392 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBCallbacksProxy);
Mads Ager (chromium) 2013/11/28 10:24:46 Everything above is just sorting, right?
haraken 2013/12/02 09:13:27 Yes.
393 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseBackendProxy);
394 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseCallbacksProxy);
395 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBFactoryBackendProxy);
396
381 #endif 397 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698