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