void DataPipeProducerDispatcher::CloseImplNoLock() {
lock().AssertAcquired();
data_pipe_->ProducerClose();
- data_pipe_ = NULL;
+ data_pipe_ = nullptr;
}
scoped_refptr<Dispatcher>
scoped_refptr<DataPipeProducerDispatcher> rv =
new DataPipeProducerDispatcher();
rv->Init(data_pipe_);
- data_pipe_ = NULL;
+ data_pipe_ = nullptr;
return scoped_refptr<Dispatcher>(rv.get());
}
MojoResult DataPipeProducerDispatcher::WriteDataImplNoLock(
- const void* elements,
- uint32_t* num_bytes,
+ UserPointer<const void> elements,
+ UserPointer<uint32_t> num_bytes,
MojoWriteDataFlags flags) {
lock().AssertAcquired();
-
- if (!VerifyUserPointer<uint32_t>(num_bytes, 1))
- return MOJO_RESULT_INVALID_ARGUMENT;
- if (!VerifyUserPointer<void>(elements, *num_bytes))
- return MOJO_RESULT_INVALID_ARGUMENT;
-
return data_pipe_->ProducerWriteData(
elements, num_bytes, (flags & MOJO_WRITE_DATA_FLAG_ALL_OR_NONE));
}
MojoResult DataPipeProducerDispatcher::BeginWriteDataImplNoLock(
- void** buffer,
- uint32_t* buffer_num_bytes,
+ UserPointer<void*> buffer,
+ UserPointer<uint32_t> buffer_num_bytes,
MojoWriteDataFlags flags) {
lock().AssertAcquired();
- if (!VerifyUserPointer<void*>(buffer, 1))
- return MOJO_RESULT_INVALID_ARGUMENT;
- if (!VerifyUserPointer<uint32_t>(buffer_num_bytes, 1))
- return MOJO_RESULT_INVALID_ARGUMENT;
-
return data_pipe_->ProducerBeginWriteData(
buffer, buffer_num_bytes, (flags & MOJO_WRITE_DATA_FLAG_ALL_OR_NONE));
}
return data_pipe_->ProducerEndWriteData(num_bytes_written);
}
+HandleSignalsState DataPipeProducerDispatcher::GetHandleSignalsStateImplNoLock()
+ const {
+ lock().AssertAcquired();
+ return data_pipe_->ProducerGetHandleSignalsState();
+}
+
MojoResult DataPipeProducerDispatcher::AddWaiterImplNoLock(
Waiter* waiter,
- MojoWaitFlags flags,
- MojoResult wake_result) {
+ MojoHandleSignals signals,
+ uint32_t context,
+ HandleSignalsState* signals_state) {
lock().AssertAcquired();
- return data_pipe_->ProducerAddWaiter(waiter, flags, wake_result);
+ return data_pipe_->ProducerAddWaiter(waiter, signals, context, signals_state);
}
-void DataPipeProducerDispatcher::RemoveWaiterImplNoLock(Waiter* waiter) {
+void DataPipeProducerDispatcher::RemoveWaiterImplNoLock(
+ Waiter* waiter,
+ HandleSignalsState* signals_state) {
lock().AssertAcquired();
- data_pipe_->ProducerRemoveWaiter(waiter);
+ data_pipe_->ProducerRemoveWaiter(waiter, signals_state);
}
bool DataPipeProducerDispatcher::IsBusyNoLock() const {