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.cronet_sample_apk; 6 7 import org.chromium.net.ConnectionMigrationOptions; 8 import org.chromium.net.CronetEngine; 9 import org.chromium.net.DnsOptions; 10 import org.chromium.net.QuicOptions; 11 12 public class ActionData { 13 private final CronetEngine.Builder mCronetEngineBuilder; 14 private final ConnectionMigrationOptions.Builder mMigrationBuilder; 15 private final QuicOptions.Builder mQuicBuilder; 16 private final DnsOptions.Builder mDnsBuilder; 17 ActionData(ActionData.Builder builder)18 private ActionData(ActionData.Builder builder) { 19 this.mCronetEngineBuilder = builder.mCronetEngineBuilder; 20 this.mMigrationBuilder = builder.mMigrationBuilder; 21 this.mQuicBuilder = builder.mQuicBuilder; 22 this.mDnsBuilder = builder.mDnsBuilder; 23 } 24 getCronetEngineBuilder()25 public CronetEngine.Builder getCronetEngineBuilder() { 26 return mCronetEngineBuilder; 27 } 28 getDnsBuilder()29 public DnsOptions.Builder getDnsBuilder() { 30 return mDnsBuilder; 31 } 32 getMigrationBuilder()33 public ConnectionMigrationOptions.Builder getMigrationBuilder() { 34 return mMigrationBuilder; 35 } 36 getQuicBuilder()37 public QuicOptions.Builder getQuicBuilder() { 38 return mQuicBuilder; 39 } 40 41 public static class Builder { 42 private CronetEngine.Builder mCronetEngineBuilder; 43 private ConnectionMigrationOptions.Builder mMigrationBuilder; 44 private QuicOptions.Builder mQuicBuilder; 45 private DnsOptions.Builder mDnsBuilder; 46 setCronetEngineBuilder(CronetEngine.Builder cronetEngineBuilder)47 public Builder setCronetEngineBuilder(CronetEngine.Builder cronetEngineBuilder) { 48 this.mCronetEngineBuilder = cronetEngineBuilder; 49 return this; 50 } 51 setDnsBuilder(DnsOptions.Builder dnsBuilder)52 public Builder setDnsBuilder(DnsOptions.Builder dnsBuilder) { 53 this.mDnsBuilder = dnsBuilder; 54 return this; 55 } 56 setMigrationBuilder(ConnectionMigrationOptions.Builder migrationBuilder)57 public Builder setMigrationBuilder(ConnectionMigrationOptions.Builder migrationBuilder) { 58 this.mMigrationBuilder = migrationBuilder; 59 return this; 60 } 61 setQuicBuilder(QuicOptions.Builder quicBuilder)62 public Builder setQuicBuilder(QuicOptions.Builder quicBuilder) { 63 this.mQuicBuilder = quicBuilder; 64 return this; 65 } 66 build()67 public ActionData build() { 68 return new ActionData(this); 69 } 70 } 71 } 72