Index: mojo/edk/system/dispatcher.h |
diff --git a/mojo/edk/system/dispatcher.h b/mojo/edk/system/dispatcher.h |
index 4b0c558a248e264d6d899c2959be63c062c6042a..9b8dafde7fb0855ef0aa449d06b3a18cfa11996e 100644 |
--- a/mojo/edk/system/dispatcher.h |
+++ b/mojo/edk/system/dispatcher.h |
@@ -12,11 +12,12 @@ |
#include <ostream> |
#include <vector> |
-#include "base/memory/ref_counted.h" |
#include "mojo/edk/embedder/platform_handle_vector.h" |
#include "mojo/edk/system/handle_signals_state.h" |
#include "mojo/edk/system/memory.h" |
#include "mojo/edk/system/mutex.h" |
+#include "mojo/edk/system/ref_counted.h" |
+#include "mojo/edk/system/ref_ptr.h" |
#include "mojo/public/c/system/buffer.h" |
#include "mojo/public/c/system/data_pipe.h" |
#include "mojo/public/c/system/message_pipe.h" |
@@ -41,7 +42,7 @@ class ProxyMessagePipeEndpoint; |
class TransportData; |
class Awakable; |
-using DispatcherVector = std::vector<scoped_refptr<Dispatcher>>; |
+using DispatcherVector = std::vector<RefPtr<Dispatcher>>; |
namespace test { |
@@ -55,7 +56,7 @@ DispatcherTransport DispatcherTryStartTransport(Dispatcher* dispatcher); |
// object is thread-safe, with its state being protected by a single mutex |
// |mutex_|, which is also made available to implementation subclasses (via the |
// |mutex()| method). |
-class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
+class Dispatcher : public RefCountedThreadSafe<Dispatcher> { |
public: |
enum class Type { |
UNKNOWN = 0, |
@@ -113,7 +114,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
// new handle on success). |
MojoResult DuplicateBufferHandle( |
UserPointer<const MojoDuplicateBufferHandleOptions> options, |
- scoped_refptr<Dispatcher>* new_dispatcher); |
+ RefPtr<Dispatcher>* new_dispatcher); |
MojoResult MapBuffer( |
uint64_t offset, |
uint64_t num_bytes, |
@@ -203,7 +204,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
// Deserialization API. |
// Note: This "clears" (i.e., reset to the invalid handle) any platform |
// handles that it takes ownership of. |
- static scoped_refptr<Dispatcher> Deserialize( |
+ static RefPtr<Dispatcher> Deserialize( |
Channel* channel, |
int32_t type, |
const void* source, |
@@ -212,8 +213,6 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
}; |
protected: |
- friend class base::RefCountedThreadSafe<Dispatcher>; |
- |
Dispatcher(); |
virtual ~Dispatcher(); |
@@ -223,8 +222,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
virtual void CancelAllAwakablesNoLock() MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
virtual void CloseImplNoLock() MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
- virtual scoped_refptr<Dispatcher> |
- CreateEquivalentDispatcherAndCloseImplNoLock() |
+ virtual RefPtr<Dispatcher> CreateEquivalentDispatcherAndCloseImplNoLock() |
MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_) = 0; |
// These are to be overridden by subclasses (if necessary). They are never |
@@ -263,8 +261,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
virtual MojoResult DuplicateBufferHandleImplNoLock( |
UserPointer<const MojoDuplicateBufferHandleOptions> options, |
- scoped_refptr<Dispatcher>* new_dispatcher) |
- MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
+ RefPtr<Dispatcher>* new_dispatcher) MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
virtual MojoResult MapBufferImplNoLock( |
uint64_t offset, |
uint64_t num_bytes, |
@@ -314,6 +311,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
Mutex& mutex() const MOJO_LOCK_RETURNED(mutex_) { return mutex_; } |
private: |
+ FRIEND_REF_COUNTED_THREAD_SAFE(Dispatcher); |
friend class DispatcherTransport; |
// Closes the dispatcher. This must be done under lock, and unlike |Close()|, |
@@ -327,7 +325,7 @@ class Dispatcher : public base::RefCountedThreadSafe<Dispatcher> { |
// dispatcher will look as though it was closed, but the resource it |
// represents will be assigned to the new dispatcher. This must be called |
// under the dispatcher's lock. |
- scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndCloseNoLock() |
+ RefPtr<Dispatcher> CreateEquivalentDispatcherAndCloseNoLock() |
MOJO_EXCLUSIVE_LOCKS_REQUIRED(mutex_); |
// API to serialize dispatchers to a |Channel|, exposed to only |
@@ -398,8 +396,7 @@ class DispatcherTransport { |
return dispatcher_->IsBusyNoLock(); |
} |
void Close() MOJO_NOT_THREAD_SAFE { dispatcher_->CloseNoLock(); } |
- scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndClose() |
- MOJO_NOT_THREAD_SAFE { |
+ RefPtr<Dispatcher> CreateEquivalentDispatcherAndClose() MOJO_NOT_THREAD_SAFE { |
return dispatcher_->CreateEquivalentDispatcherAndCloseNoLock(); |
} |