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