View Javadoc
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 }