jimu-decompiled/sources/okhttp3/internal/http2/Settings.java
2025-05-13 19:24:51 +02:00

82 lines
2.0 KiB
Java

package okhttp3.internal.http2;
import com.ubtrobot.jimu.robotapi.PeripheralType;
import java.util.Arrays;
/* loaded from: classes2.dex */
public final class Settings {
static final int COUNT = 10;
static final int DEFAULT_INITIAL_WINDOW_SIZE = 65535;
static final int ENABLE_PUSH = 2;
static final int HEADER_TABLE_SIZE = 1;
static final int INITIAL_WINDOW_SIZE = 7;
static final int MAX_CONCURRENT_STREAMS = 4;
static final int MAX_FRAME_SIZE = 5;
static final int MAX_HEADER_LIST_SIZE = 6;
private int set;
private final int[] values = new int[10];
void clear() {
this.set = 0;
Arrays.fill(this.values, 0);
}
int get(int i) {
return this.values[i];
}
boolean getEnablePush(boolean z) {
return ((this.set & 4) != 0 ? this.values[2] : z ? 1 : 0) == 1;
}
int getHeaderTableSize() {
if ((this.set & 2) != 0) {
return this.values[1];
}
return -1;
}
int getInitialWindowSize() {
return (this.set & PeripheralType.SERVO) != 0 ? this.values[7] : DEFAULT_INITIAL_WINDOW_SIZE;
}
int getMaxConcurrentStreams(int i) {
return (this.set & 16) != 0 ? this.values[4] : i;
}
int getMaxFrameSize(int i) {
return (this.set & 32) != 0 ? this.values[5] : i;
}
int getMaxHeaderListSize(int i) {
return (this.set & 64) != 0 ? this.values[6] : i;
}
boolean isSet(int i) {
return ((1 << i) & this.set) != 0;
}
void merge(Settings settings) {
for (int i = 0; i < 10; i++) {
if (settings.isSet(i)) {
set(i, settings.get(i));
}
}
}
Settings set(int i, int i2) {
if (i >= 0) {
int[] iArr = this.values;
if (i < iArr.length) {
this.set = (1 << i) | this.set;
iArr[i] = i2;
}
}
return this;
}
int size() {
return Integer.bitCount(this.set);
}
}