1 // Copyright 2023 The Chromium Authors 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.net.impl; 6 7 import androidx.annotation.NonNull; 8 9 import static org.chromium.net.impl.HttpEngineNativeProvider.EXT_API_LEVEL; 10 import static org.chromium.net.impl.HttpEngineNativeProvider.EXT_VERSION; 11 12 import androidx.annotation.RequiresExtension; 13 14 import org.chromium.net.UrlResponseInfo; 15 16 import java.nio.ByteBuffer; 17 18 @RequiresExtension(extension = EXT_API_LEVEL, version = EXT_VERSION) 19 class AndroidBidirectionalStreamWrapper extends org.chromium.net.ExperimentalBidirectionalStream { 20 private final android.net.http.BidirectionalStream mBackend; 21 AndroidBidirectionalStreamWrapper(android.net.http.BidirectionalStream backend)22 AndroidBidirectionalStreamWrapper(android.net.http.BidirectionalStream backend) { 23 this.mBackend = backend; 24 } 25 26 @Override start()27 public void start() { 28 mBackend.start(); 29 } 30 31 @Override read(ByteBuffer buffer)32 public void read(ByteBuffer buffer) { 33 mBackend.read(buffer); 34 } 35 36 @Override write(ByteBuffer buffer, boolean endOfStream)37 public void write(ByteBuffer buffer, boolean endOfStream) { 38 mBackend.write(buffer, endOfStream); 39 } 40 41 @Override flush()42 public void flush() { 43 mBackend.flush(); 44 } 45 46 @Override cancel()47 public void cancel() { 48 mBackend.cancel(); 49 } 50 51 @Override isDone()52 public boolean isDone() { 53 return mBackend.isDone(); 54 } 55 56 @Override isDelayRequestHeadersUntilFirstFlushEnabled()57 public boolean isDelayRequestHeadersUntilFirstFlushEnabled() { 58 return mBackend.isDelayRequestHeadersUntilFirstFlushEnabled(); 59 } 60 61 @Override getPriority()62 public int getPriority() { 63 return mBackend.getPriority(); 64 } 65 66 @NonNull 67 @Override getHeaders()68 public UrlResponseInfo.HeaderBlock getHeaders() { 69 return new AndroidHeaderBlockWrapper(mBackend.getHeaders()); 70 } 71 72 @Override getTrafficStatsUid()73 public int getTrafficStatsUid() { 74 return mBackend.getTrafficStatsUid(); 75 } 76 77 @Override getTrafficStatsTag()78 public int getTrafficStatsTag() { 79 return mBackend.getTrafficStatsTag(); 80 } 81 82 @Override hasTrafficStatsUid()83 public boolean hasTrafficStatsUid() { 84 return mBackend.hasTrafficStatsUid(); 85 } 86 87 @Override hasTrafficStatsTag()88 public boolean hasTrafficStatsTag() { 89 return mBackend.hasTrafficStatsTag(); 90 } 91 92 @NonNull 93 @Override getHttpMethod()94 public String getHttpMethod() { 95 return mBackend.getHttpMethod(); 96 } 97 } 98