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

Side by Side Diff: mojo/system/dispatcher.h

Issue 262093003: Mojo: Add/use |typedef std::vector<scoped_refptr<Dispatcher> > DispatcherVector. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months 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
« no previous file with comments | « mojo/system/core_test_base.cc ('k') | mojo/system/dispatcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_DISPATCHER_H_ 5 #ifndef MOJO_SYSTEM_DISPATCHER_H_
6 #define MOJO_SYSTEM_DISPATCHER_H_ 6 #define MOJO_SYSTEM_DISPATCHER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 14 matching lines...) Expand all
25 class Core; 25 class Core;
26 class Dispatcher; 26 class Dispatcher;
27 class DispatcherTransport; 27 class DispatcherTransport;
28 class HandleTable; 28 class HandleTable;
29 class LocalMessagePipeEndpoint; 29 class LocalMessagePipeEndpoint;
30 class ProxyMessagePipeEndpoint; 30 class ProxyMessagePipeEndpoint;
31 class RawSharedBufferMapping; 31 class RawSharedBufferMapping;
32 class TransportData; 32 class TransportData;
33 class Waiter; 33 class Waiter;
34 34
35 typedef std::vector<scoped_refptr<Dispatcher> > DispatcherVector;
36
35 namespace test { 37 namespace test {
36 38
37 // Test helper. We need to declare it here so we can friend it. 39 // Test helper. We need to declare it here so we can friend it.
38 MOJO_SYSTEM_IMPL_EXPORT DispatcherTransport DispatcherTryStartTransport( 40 MOJO_SYSTEM_IMPL_EXPORT DispatcherTransport DispatcherTryStartTransport(
39 Dispatcher* dispatcher); 41 Dispatcher* dispatcher);
40 42
41 } // namespace test 43 } // namespace test
42 44
43 // A |Dispatcher| implements Mojo primitives that are "attached" to a particular 45 // A |Dispatcher| implements Mojo primitives that are "attached" to a particular
44 // handle. This includes most (all?) primitives except for |MojoWait...()|. This 46 // handle. This includes most (all?) primitives except for |MojoWait...()|. This
(...skipping 25 matching lines...) Expand all
70 // written; not that |this| must not be in |transports|. On success, all the 72 // written; not that |this| must not be in |transports|. On success, all the
71 // dispatchers in |transports| must have been moved to a closed state; on 73 // dispatchers in |transports| must have been moved to a closed state; on
72 // failure, they should remain in their original state. 74 // failure, they should remain in their original state.
73 MojoResult WriteMessage(const void* bytes, 75 MojoResult WriteMessage(const void* bytes,
74 uint32_t num_bytes, 76 uint32_t num_bytes,
75 std::vector<DispatcherTransport>* transports, 77 std::vector<DispatcherTransport>* transports,
76 MojoWriteMessageFlags flags); 78 MojoWriteMessageFlags flags);
77 // |dispatchers| must be non-null but empty, if |num_dispatchers| is non-null 79 // |dispatchers| must be non-null but empty, if |num_dispatchers| is non-null
78 // and nonzero. On success, it will be set to the dispatchers to be received 80 // and nonzero. On success, it will be set to the dispatchers to be received
79 // (and assigned handles) as part of the message. 81 // (and assigned handles) as part of the message.
80 MojoResult ReadMessage( 82 MojoResult ReadMessage(void* bytes,
81 void* bytes, 83 uint32_t* num_bytes,
82 uint32_t* num_bytes, 84 DispatcherVector* dispatchers,
83 std::vector<scoped_refptr<Dispatcher> >* dispatchers, 85 uint32_t* num_dispatchers,
84 uint32_t* num_dispatchers, 86 MojoReadMessageFlags flags);
85 MojoReadMessageFlags flags);
86 MojoResult WriteData(const void* elements, 87 MojoResult WriteData(const void* elements,
87 uint32_t* elements_num_bytes, 88 uint32_t* elements_num_bytes,
88 MojoWriteDataFlags flags); 89 MojoWriteDataFlags flags);
89 MojoResult BeginWriteData(void** buffer, 90 MojoResult BeginWriteData(void** buffer,
90 uint32_t* buffer_num_bytes, 91 uint32_t* buffer_num_bytes,
91 MojoWriteDataFlags flags); 92 MojoWriteDataFlags flags);
92 MojoResult EndWriteData(uint32_t num_bytes_written); 93 MojoResult EndWriteData(uint32_t num_bytes_written);
93 MojoResult ReadData(void* elements, 94 MojoResult ReadData(void* elements,
94 uint32_t* num_bytes, 95 uint32_t* num_bytes,
95 MojoReadDataFlags flags); 96 MojoReadDataFlags flags);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 199
199 // These are to be overridden by subclasses (if necessary). They are never 200 // These are to be overridden by subclasses (if necessary). They are never
200 // called after the dispatcher has been closed. They are called under |lock_|. 201 // called after the dispatcher has been closed. They are called under |lock_|.
201 // See the descriptions of the methods without the "ImplNoLock" for more 202 // See the descriptions of the methods without the "ImplNoLock" for more
202 // information. 203 // information.
203 virtual MojoResult WriteMessageImplNoLock( 204 virtual MojoResult WriteMessageImplNoLock(
204 const void* bytes, 205 const void* bytes,
205 uint32_t num_bytes, 206 uint32_t num_bytes,
206 std::vector<DispatcherTransport>* transports, 207 std::vector<DispatcherTransport>* transports,
207 MojoWriteMessageFlags flags); 208 MojoWriteMessageFlags flags);
208 virtual MojoResult ReadMessageImplNoLock( 209 virtual MojoResult ReadMessageImplNoLock(void* bytes,
209 void* bytes, 210 uint32_t* num_bytes,
210 uint32_t* num_bytes, 211 DispatcherVector* dispatchers,
211 std::vector<scoped_refptr<Dispatcher> >* dispatchers, 212 uint32_t* num_dispatchers,
212 uint32_t* num_dispatchers, 213 MojoReadMessageFlags flags);
213 MojoReadMessageFlags flags);
214 virtual MojoResult WriteDataImplNoLock(const void* elements, 214 virtual MojoResult WriteDataImplNoLock(const void* elements,
215 uint32_t* num_bytes, 215 uint32_t* num_bytes,
216 MojoWriteDataFlags flags); 216 MojoWriteDataFlags flags);
217 virtual MojoResult BeginWriteDataImplNoLock(void** buffer, 217 virtual MojoResult BeginWriteDataImplNoLock(void** buffer,
218 uint32_t* buffer_num_bytes, 218 uint32_t* buffer_num_bytes,
219 MojoWriteDataFlags flags); 219 MojoWriteDataFlags flags);
220 virtual MojoResult EndWriteDataImplNoLock(uint32_t num_bytes_written); 220 virtual MojoResult EndWriteDataImplNoLock(uint32_t num_bytes_written);
221 virtual MojoResult ReadDataImplNoLock(void* elements, 221 virtual MojoResult ReadDataImplNoLock(void* elements,
222 uint32_t* num_bytes, 222 uint32_t* num_bytes,
223 MojoReadDataFlags flags); 223 MojoReadDataFlags flags);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 361
362 Dispatcher* dispatcher_; 362 Dispatcher* dispatcher_;
363 363
364 // Copy and assign allowed. 364 // Copy and assign allowed.
365 }; 365 };
366 366
367 } // namespace system 367 } // namespace system
368 } // namespace mojo 368 } // namespace mojo
369 369
370 #endif // MOJO_SYSTEM_DISPATCHER_H_ 370 #endif // MOJO_SYSTEM_DISPATCHER_H_
OLDNEW
« no previous file with comments | « mojo/system/core_test_base.cc ('k') | mojo/system/dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698