1 /* 2 * Copyright 2013 The Netty Project 3 * 4 * The Netty Project licenses this file to you under the Apache License, 5 * version 2.0 (the "License"); you may not use this file except in compliance 6 * with the License. You may obtain a copy of the License at: 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 package org.jboss.netty.handler.codec.spdy; 17 18 import java.util.Set; 19 20 /** 21 * A SPDY Protocol SETTINGS Frame 22 */ 23 public interface SpdySettingsFrame extends SpdyFrame { 24 25 int SETTINGS_MINOR_VERSION = 0; 26 int SETTINGS_UPLOAD_BANDWIDTH = 1; 27 int SETTINGS_DOWNLOAD_BANDWIDTH = 2; 28 int SETTINGS_ROUND_TRIP_TIME = 3; 29 int SETTINGS_MAX_CONCURRENT_STREAMS = 4; 30 int SETTINGS_CURRENT_CWND = 5; 31 int SETTINGS_DOWNLOAD_RETRANS_RATE = 6; 32 int SETTINGS_INITIAL_WINDOW_SIZE = 7; 33 int SETTINGS_CLIENT_CERTIFICATE_VECTOR_SIZE = 8; 34 35 /** 36 * Returns a {@code Set} of the setting IDs. 37 * The set's iterator will return the IDs in ascending order. 38 */ 39 Set<Integer> getIds(); 40 41 /** 42 * Returns {@code true} if the setting ID has a value. 43 */ 44 boolean isSet(int id); 45 46 /** 47 * Returns the value of the setting ID. 48 * Returns -1 if the setting ID is not set. 49 */ 50 int getValue(int id); 51 52 /** 53 * Sets the value of the setting ID. 54 * The ID cannot be negative and cannot exceed 16777215. 55 */ 56 void setValue(int id, int value); 57 58 /** 59 * Sets the value of the setting ID. 60 * Sets if the setting should be persisted (should only be set by the server). 61 * Sets if the setting is persisted (should only be set by the client). 62 * The ID cannot be negative and cannot exceed 16777215. 63 */ 64 void setValue(int id, int value, boolean persistVal, boolean persisted); 65 66 /** 67 * Removes the value of the setting ID. 68 * Removes all persistence information for the setting. 69 */ 70 void removeValue(int id); 71 72 /** 73 * Returns {@code true} if this setting should be persisted. 74 * Returns {@code false} if this setting should not be persisted 75 * or if the setting ID has no value. 76 */ 77 boolean isPersistValue(int id); 78 79 /** 80 * Sets if this setting should be persisted. 81 * Has no effect if the setting ID has no value. 82 */ 83 void setPersistValue(int id, boolean persistValue); 84 85 /** 86 * Returns {@code true} if this setting is persisted. 87 * Returns {@code false} if this setting should not be persisted 88 * or if the setting ID has no value. 89 */ 90 boolean isPersisted(int id); 91 92 /** 93 * Sets if this setting is persisted. 94 * Has no effect if the setting ID has no value. 95 */ 96 void setPersisted(int id, boolean persisted); 97 98 /** 99 * Returns {@code true} if previously persisted settings should be cleared. 100 */ 101 boolean clearPreviouslyPersistedSettings(); 102 103 /** 104 * Sets if previously persisted settings should be cleared. 105 */ 106 void setClearPreviouslyPersistedSettings(boolean clear); 107 }