X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmojo%2Fsystem%2Fdata_pipe_producer_dispatcher.cc;h=d3c69b610d5ce44477c7ffe878162f372e0d9636;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=52ffd8e136e054658ce0d76641c29e289fadbdff;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/mojo/system/data_pipe_producer_dispatcher.cc b/src/mojo/system/data_pipe_producer_dispatcher.cc index 52ffd8e..d3c69b6 100644 --- a/src/mojo/system/data_pipe_producer_dispatcher.cc +++ b/src/mojo/system/data_pipe_producer_dispatcher.cc @@ -19,6 +19,10 @@ void DataPipeProducerDispatcher::Init(scoped_refptr data_pipe) { data_pipe_ = data_pipe; } +Dispatcher::Type DataPipeProducerDispatcher::GetType() const { + return kTypeDataPipeProducer; +} + DataPipeProducerDispatcher::~DataPipeProducerDispatcher() { // |Close()|/|CloseImplNoLock()| should have taken care of the pipe. DCHECK(!data_pipe_.get()); @@ -29,11 +33,21 @@ void DataPipeProducerDispatcher::CancelAllWaitersNoLock() { data_pipe_->ProducerCancelAllWaiters(); } -MojoResult DataPipeProducerDispatcher::CloseImplNoLock() { +void DataPipeProducerDispatcher::CloseImplNoLock() { lock().AssertAcquired(); data_pipe_->ProducerClose(); data_pipe_ = NULL; - return MOJO_RESULT_OK; +} + +scoped_refptr +DataPipeProducerDispatcher::CreateEquivalentDispatcherAndCloseImplNoLock() { + lock().AssertAcquired(); + + scoped_refptr rv = + new DataPipeProducerDispatcher(); + rv->Init(data_pipe_); + data_pipe_ = NULL; + return scoped_refptr(rv.get()); } MojoResult DataPipeProducerDispatcher::WriteDataImplNoLock( @@ -86,15 +100,9 @@ void DataPipeProducerDispatcher::RemoveWaiterImplNoLock(Waiter* waiter) { data_pipe_->ProducerRemoveWaiter(waiter); } -scoped_refptr -DataPipeProducerDispatcher::CreateEquivalentDispatcherAndCloseImplNoLock() { +bool DataPipeProducerDispatcher::IsBusyNoLock() const { lock().AssertAcquired(); - - scoped_refptr rv = - new DataPipeProducerDispatcher(); - rv->Init(data_pipe_); - data_pipe_ = NULL; - return scoped_refptr(rv.get()); + return data_pipe_->ProducerIsBusy(); } } // namespace system