10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file. 40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)package org.chromium.mojo.system.impl; 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)import org.chromium.mojo.system.Handle; 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)import org.chromium.mojo.system.MessagePipeHandle; 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochimport java.nio.ByteBuffer; 110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochimport java.util.List; 120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch/** 140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * Implementation of {@link MessagePipeHandle}. 150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class MessagePipeHandleImpl extends HandleBase implements MessagePipeHandle { 170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @see HandleBase#HandleBase(CoreImpl, int) 200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch MessagePipeHandleImpl(CoreImpl core, int mojoHandle) { 220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch super(core, mojoHandle); 230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @see HandleBase#HandleBase(HandleBase) 270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch MessagePipeHandleImpl(HandleBase handle) { 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch super(handle); 300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * @see org.chromium.mojo.system.MessagePipeHandle#pass() 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch */ 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @Override 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public MessagePipeHandle pass() { 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return new MessagePipeHandleImpl(this); 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch /** 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * @see MessagePipeHandle#writeMessage(ByteBuffer, List, WriteFlags) 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch @Override 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public void writeMessage(ByteBuffer bytes, List<? extends Handle> handles, WriteFlags flags) { 450529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch mCore.writeMessage(this, bytes, handles, flags); 460529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 470529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 480529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 490529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * @see MessagePipeHandle#readMessage(ByteBuffer, int, ReadFlags) 500529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 510529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch @Override 520529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public ReadMessageResult readMessage(ByteBuffer bytes, 530529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch int maxNumberOfHandles, 540529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch ReadFlags flags) { 550529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return mCore.readMessage(this, bytes, maxNumberOfHandles, flags); 560529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch } 570529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 580529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 59