Home | History | Annotate | Download | only in impl
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 package org.chromium.mojo.system.impl;
      6 
      7 import org.chromium.mojo.system.DataPipe.ProducerHandle;
      8 import org.chromium.mojo.system.DataPipe.WriteFlags;
      9 import org.chromium.mojo.system.ResultAnd;
     10 
     11 import java.nio.ByteBuffer;
     12 
     13 /**
     14  * Implementation of {@link ProducerHandle}.
     15  */
     16 class DataPipeProducerHandleImpl extends HandleBase implements ProducerHandle {
     17     /**
     18      * @see HandleBase#HandleBase(CoreImpl, int)
     19      */
     20     DataPipeProducerHandleImpl(CoreImpl core, int mojoHandle) {
     21         super(core, mojoHandle);
     22     }
     23 
     24     /**
     25      * @see HandleBase#HandleBase(HandleBase)
     26      */
     27     DataPipeProducerHandleImpl(HandleBase handle) {
     28         super(handle);
     29     }
     30 
     31     /**
     32      * @see org.chromium.mojo.system.DataPipe.ProducerHandle#pass()
     33      */
     34     @Override
     35     public ProducerHandle pass() {
     36         return new DataPipeProducerHandleImpl(this);
     37     }
     38 
     39     /**
     40      * @see ProducerHandle#writeData(ByteBuffer, WriteFlags)
     41      */
     42     @Override
     43     public ResultAnd<Integer> writeData(ByteBuffer elements, WriteFlags flags) {
     44         return mCore.writeData(this, elements, flags);
     45     }
     46 
     47     /**
     48      * @see ProducerHandle#beginWriteData(int, WriteFlags)
     49      */
     50     @Override
     51     public ByteBuffer beginWriteData(int numBytes, WriteFlags flags) {
     52         return mCore.beginWriteData(this, numBytes, flags);
     53     }
     54 
     55     /**
     56      * @see ProducerHandle#endWriteData(int)
     57      */
     58     @Override
     59     public void endWriteData(int numBytesWritten) {
     60         mCore.endWriteData(this, numBytesWritten);
     61     }
     62 }
     63