OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef MOJO_SYSTEM_MESSAGE_PIPE_H_ | 5 #ifndef MOJO_SYSTEM_MESSAGE_PIPE_H_ |
6 #define MOJO_SYSTEM_MESSAGE_PIPE_H_ | 6 #define MOJO_SYSTEM_MESSAGE_PIPE_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/synchronization/lock.h" | 14 #include "base/synchronization/lock.h" |
15 #include "mojo/public/system/core.h" | 15 #include "mojo/public/system/core.h" |
16 #include "mojo/public/system/system_export.h" | |
17 #include "mojo/system/message_in_transit.h" | 16 #include "mojo/system/message_in_transit.h" |
| 17 #include "mojo/system/system_impl_export.h" |
18 | 18 |
19 namespace mojo { | 19 namespace mojo { |
20 namespace system { | 20 namespace system { |
21 | 21 |
22 class Channel; | 22 class Channel; |
23 class Dispatcher; | 23 class Dispatcher; |
24 class MessagePipeEndpoint; | 24 class MessagePipeEndpoint; |
25 class Waiter; | 25 class Waiter; |
26 | 26 |
27 // |MessagePipe| is the secondary object implementing a message pipe (see the | 27 // |MessagePipe| is the secondary object implementing a message pipe (see the |
28 // explanatory comment in core_impl.cc). It is typically owned by the | 28 // explanatory comment in core_impl.cc). It is typically owned by the |
29 // dispatcher(s) corresponding to the local endpoints. This class is | 29 // dispatcher(s) corresponding to the local endpoints. This class is |
30 // thread-safe. | 30 // thread-safe. |
31 class MOJO_SYSTEM_EXPORT MessagePipe : | 31 class MOJO_SYSTEM_IMPL_EXPORT MessagePipe : |
32 public base::RefCountedThreadSafe<MessagePipe> { | 32 public base::RefCountedThreadSafe<MessagePipe> { |
33 public: | 33 public: |
34 MessagePipe(scoped_ptr<MessagePipeEndpoint> endpoint_0, | 34 MessagePipe(scoped_ptr<MessagePipeEndpoint> endpoint_0, |
35 scoped_ptr<MessagePipeEndpoint> endpoint_1); | 35 scoped_ptr<MessagePipeEndpoint> endpoint_1); |
36 | 36 |
37 // Convenience constructor that constructs a |MessagePipe| with two new | 37 // Convenience constructor that constructs a |MessagePipe| with two new |
38 // |LocalMessagePipeEndpoint|s. | 38 // |LocalMessagePipeEndpoint|s. |
39 MessagePipe(); | 39 MessagePipe(); |
40 | 40 |
41 // Gets the other port number (i.e., 0 -> 1, 1 -> 0). | 41 // Gets the other port number (i.e., 0 -> 1, 1 -> 0). |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 base::Lock lock_; // Protects the following members. | 89 base::Lock lock_; // Protects the following members. |
90 scoped_ptr<MessagePipeEndpoint> endpoints_[2]; | 90 scoped_ptr<MessagePipeEndpoint> endpoints_[2]; |
91 | 91 |
92 DISALLOW_COPY_AND_ASSIGN(MessagePipe); | 92 DISALLOW_COPY_AND_ASSIGN(MessagePipe); |
93 }; | 93 }; |
94 | 94 |
95 } // namespace system | 95 } // namespace system |
96 } // namespace mojo | 96 } // namespace mojo |
97 | 97 |
98 #endif // MOJO_SYSTEM_MESSAGE_PIPE_H_ | 98 #endif // MOJO_SYSTEM_MESSAGE_PIPE_H_ |
OLD | NEW |