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_RAW_CHANNEL_H_ | 5 #ifndef MOJO_SYSTEM_RAW_CHANNEL_H_ |
6 #define MOJO_SYSTEM_RAW_CHANNEL_H_ | 6 #define MOJO_SYSTEM_RAW_CHANNEL_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" |
14 #include "base/synchronization/lock.h" | 14 #include "base/synchronization/lock.h" |
15 #include "mojo/embedder/scoped_platform_handle.h" | 15 #include "mojo/embedder/scoped_platform_handle.h" |
16 #include "mojo/system/constants.h" | 16 #include "mojo/system/constants.h" |
17 #include "mojo/system/message_in_transit.h" | 17 #include "mojo/system/message_in_transit.h" |
18 #include "mojo/system/system_impl_export.h" | 18 #include "mojo/system/system_impl_export.h" |
19 | 19 |
20 namespace base { | 20 namespace base { |
21 class MessageLoopForIO; | 21 class MessageLoopForIO; |
22 } | 22 } |
23 | 23 |
24 namespace mojo { | 24 namespace mojo { |
25 namespace system { | 25 namespace system { |
26 | 26 |
27 // |RawChannel| is an interface to objects that wrap an OS "pipe". It presents | 27 // |RawChannel| is an interface and base class for objects that wrap an OS |
28 // the following interface to users: | 28 // "pipe". It presents the following interface to users: |
29 // - Receives and dispatches messages on an I/O thread (running a | 29 // - Receives and dispatches messages on an I/O thread (running a |
30 // |MessageLoopForIO|. | 30 // |MessageLoopForIO|. |
31 // - Provides a thread-safe way of writing messages (|WriteMessage()|); | 31 // - Provides a thread-safe way of writing messages (|WriteMessage()|); |
32 // writing/queueing messages will not block and is atomic from the point of | 32 // writing/queueing messages will not block and is atomic from the point of |
33 // view of the caller. If necessary, messages are queued (to be written on | 33 // view of the caller. If necessary, messages are queued (to be written on |
34 // the aforementioned thread). | 34 // the aforementioned thread). |
35 // | 35 // |
36 // OS-specific implementation subclasses are to be instantiated using the | 36 // OS-specific implementation subclasses are to be instantiated using the |
37 // |Create()| static factory method. | 37 // |Create()| static factory method. |
38 // | 38 // |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 // are only used/invalidated on the I/O thread. | 233 // are only used/invalidated on the I/O thread. |
234 base::WeakPtrFactory<RawChannel> weak_ptr_factory_; | 234 base::WeakPtrFactory<RawChannel> weak_ptr_factory_; |
235 | 235 |
236 DISALLOW_COPY_AND_ASSIGN(RawChannel); | 236 DISALLOW_COPY_AND_ASSIGN(RawChannel); |
237 }; | 237 }; |
238 | 238 |
239 } // namespace system | 239 } // namespace system |
240 } // namespace mojo | 240 } // namespace mojo |
241 | 241 |
242 #endif // MOJO_SYSTEM_RAW_CHANNEL_H_ | 242 #endif // MOJO_SYSTEM_RAW_CHANNEL_H_ |
OLD | NEW |