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

Side by Side Diff: mojo/edk/system/core.cc

Issue 1885663002: EDK: Add implementation of data pipe producer write threshold stuff. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « mojo/edk/system/core.h ('k') | mojo/edk/system/core_unittest.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 #include "mojo/edk/system/core.h" 5 #include "mojo/edk/system/core.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 398
399 auto data_pipe = DataPipe::CreateLocal(validated_options); 399 auto data_pipe = DataPipe::CreateLocal(validated_options);
400 producer_dispatcher->Init(data_pipe.Clone()); 400 producer_dispatcher->Init(data_pipe.Clone());
401 consumer_dispatcher->Init(std::move(data_pipe)); 401 consumer_dispatcher->Init(std::move(data_pipe));
402 402
403 data_pipe_producer_handle.Put(handle_pair.first); 403 data_pipe_producer_handle.Put(handle_pair.first);
404 data_pipe_consumer_handle.Put(handle_pair.second); 404 data_pipe_consumer_handle.Put(handle_pair.second);
405 return MOJO_RESULT_OK; 405 return MOJO_RESULT_OK;
406 } 406 }
407 407
408 MojoResult Core::SetDataPipeProducerOptions(
409 MojoHandle data_pipe_producer_handle,
410 UserPointer<const MojoDataPipeProducerOptions> options) {
411 RefPtr<Dispatcher> dispatcher;
412 MojoResult result = GetDispatcher(data_pipe_producer_handle, &dispatcher);
413 if (result != MOJO_RESULT_OK)
414 return result;
415
416 return dispatcher->SetDataPipeProducerOptions(options);
417 }
418
419 MojoResult Core::GetDataPipeProducerOptions(
420 MojoHandle data_pipe_producer_handle,
421 UserPointer<MojoDataPipeProducerOptions> options,
422 uint32_t options_num_bytes) {
423 RefPtr<Dispatcher> dispatcher;
424 MojoResult result = GetDispatcher(data_pipe_producer_handle, &dispatcher);
425 if (result != MOJO_RESULT_OK)
426 return result;
427
428 return dispatcher->GetDataPipeProducerOptions(options, options_num_bytes);
429 }
430
408 MojoResult Core::WriteData(MojoHandle data_pipe_producer_handle, 431 MojoResult Core::WriteData(MojoHandle data_pipe_producer_handle,
409 UserPointer<const void> elements, 432 UserPointer<const void> elements,
410 UserPointer<uint32_t> num_bytes, 433 UserPointer<uint32_t> num_bytes,
411 MojoWriteDataFlags flags) { 434 MojoWriteDataFlags flags) {
412 RefPtr<Dispatcher> dispatcher; 435 RefPtr<Dispatcher> dispatcher;
413 MojoResult result = GetDispatcher(data_pipe_producer_handle, &dispatcher); 436 MojoResult result = GetDispatcher(data_pipe_producer_handle, &dispatcher);
414 if (result != MOJO_RESULT_OK) 437 if (result != MOJO_RESULT_OK)
415 return result; 438 return result;
416 439
417 return dispatcher->WriteData(elements, num_bytes, flags); 440 return dispatcher->WriteData(elements, num_bytes, flags);
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 if (signals_states) { 682 if (signals_states) {
660 for (; i < num_handles; i++) 683 for (; i < num_handles; i++)
661 signals_states[i] = dispatchers[i]->GetHandleSignalsState(); 684 signals_states[i] = dispatchers[i]->GetHandleSignalsState();
662 } 685 }
663 686
664 return result; 687 return result;
665 } 688 }
666 689
667 } // namespace system 690 } // namespace system
668 } // namespace mojo 691 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/core.h ('k') | mojo/edk/system/core_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698