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

Side by Side Diff: sync/internal_api/public/util/weak_handle.h

Issue 11515009: [sync] Componentize sync: Part 2: Add SYNC_EXPORTs to files in src/sync/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Weak handles provides a way to refer to weak pointers from another 5 // Weak handles provides a way to refer to weak pointers from another
6 // thread. This is useful because it is not safe to reference a weak 6 // thread. This is useful because it is not safe to reference a weak
7 // pointer from a thread other than the thread on which it was 7 // pointer from a thread other than the thread on which it was
8 // created. 8 // created.
9 // 9 //
10 // Weak handles can be passed across threads, so for example, you can 10 // Weak handles can be passed across threads, so for example, you can
11 // use them to do the "real" work on one thread and get notified on 11 // use them to do the "real" work on one thread and get notified on
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 #include "base/basictypes.h" 52 #include "base/basictypes.h"
53 #include "base/bind.h" 53 #include "base/bind.h"
54 #include "base/callback_forward.h" 54 #include "base/callback_forward.h"
55 #include "base/compiler_specific.h" 55 #include "base/compiler_specific.h"
56 #include "base/gtest_prod_util.h" 56 #include "base/gtest_prod_util.h"
57 #include "base/location.h" 57 #include "base/location.h"
58 #include "base/logging.h" 58 #include "base/logging.h"
59 #include "base/memory/ref_counted.h" 59 #include "base/memory/ref_counted.h"
60 #include "base/memory/weak_ptr.h" 60 #include "base/memory/weak_ptr.h"
61 #include "sync/base/sync_export.h"
61 62
62 namespace base { 63 namespace base {
63 class MessageLoopProxy; 64 class MessageLoopProxy;
64 } // namespace base 65 } // namespace base
65 66
66 namespace tracked_objects { 67 namespace tracked_objects {
67 class Location; 68 class Location;
68 } // namespace tracked_objects 69 } // namespace tracked_objects
69 70
70 namespace syncer { 71 namespace syncer {
(...skipping 21 matching lines...) Expand all
92 typedef const T* ForwardType; 93 typedef const T* ForwardType;
93 }; 94 };
94 95
95 template <typename T> 96 template <typename T>
96 struct ParamTraits<T[]> { 97 struct ParamTraits<T[]> {
97 typedef const T* ForwardType; 98 typedef const T* ForwardType;
98 }; 99 };
99 100
100 // Base class for WeakHandleCore<T> to avoid template bloat. Handles 101 // Base class for WeakHandleCore<T> to avoid template bloat. Handles
101 // the interaction with the owner thread and its message loop. 102 // the interaction with the owner thread and its message loop.
102 class WeakHandleCoreBase { 103 class SYNC_EXPORT WeakHandleCoreBase {
akalin 2012/12/11 00:02:52 hmm. Can you see if you can avoid exporting this
Raghu Simha 2012/12/11 01:27:51 Done.
103 public: 104 public:
104 // Assumes the current thread is the owner thread. 105 // Assumes the current thread is the owner thread.
105 WeakHandleCoreBase(); 106 WeakHandleCoreBase();
106 107
107 // May be called on any thread. 108 // May be called on any thread.
108 bool IsOnOwnerThread() const; 109 bool IsOnOwnerThread() const;
109 110
110 protected: 111 protected:
111 // May be destroyed on any thread. 112 // May be destroyed on any thread.
112 ~WeakHandleCoreBase(); 113 ~WeakHandleCoreBase();
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 370
370 // Makes a WeakHandle from a WeakPtr. 371 // Makes a WeakHandle from a WeakPtr.
371 template <typename T> 372 template <typename T>
372 WeakHandle<T> MakeWeakHandle(const base::WeakPtr<T>& ptr) { 373 WeakHandle<T> MakeWeakHandle(const base::WeakPtr<T>& ptr) {
373 return WeakHandle<T>(ptr); 374 return WeakHandle<T>(ptr);
374 } 375 }
375 376
376 } // namespace syncer 377 } // namespace syncer
377 378
378 #endif // SYNC_UTIL_WEAK_HANDLE_H_ 379 #endif // SYNC_UTIL_WEAK_HANDLE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698