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 5package org.chromium.mojo.system.impl; 6 7import org.chromium.mojo.system.DataPipe.ProducerHandle; 8import org.chromium.mojo.system.DataPipe.WriteFlags; 9import org.chromium.mojo.system.ResultAnd; 10 11import java.nio.ByteBuffer; 12 13/** 14 * Implementation of {@link ProducerHandle}. 15 */ 16class DataPipeProducerHandleImpl extends HandleBase implements ProducerHandle { 17 18 /** 19 * @see HandleBase#HandleBase(CoreImpl, int) 20 */ 21 DataPipeProducerHandleImpl(CoreImpl core, int mojoHandle) { 22 super(core, mojoHandle); 23 } 24 25 /** 26 * @see HandleBase#HandleBase(HandleBase) 27 */ 28 DataPipeProducerHandleImpl(HandleBase handle) { 29 super(handle); 30 } 31 32 /** 33 * @see org.chromium.mojo.system.DataPipe.ProducerHandle#pass() 34 */ 35 @Override 36 public ProducerHandle pass() { 37 return new DataPipeProducerHandleImpl(this); 38 } 39 40 /** 41 * @see ProducerHandle#writeData(ByteBuffer, WriteFlags) 42 */ 43 @Override 44 public ResultAnd<Integer> writeData(ByteBuffer elements, WriteFlags flags) { 45 return mCore.writeData(this, elements, flags); 46 } 47 48 /** 49 * @see ProducerHandle#beginWriteData(int, WriteFlags) 50 */ 51 @Override 52 public ByteBuffer beginWriteData(int numBytes, WriteFlags flags) { 53 return mCore.beginWriteData(this, numBytes, flags); 54 } 55 56 /** 57 * @see ProducerHandle#endWriteData(int) 58 */ 59 @Override 60 public void endWriteData(int numBytesWritten) { 61 mCore.endWriteData(this, numBytesWritten); 62 } 63 64} 65