View Javadoc
1   /*
2    * Copyright 2014 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 org.jboss.netty.buffer.ChannelBuffer;
19  
20  /**
21   * Callback interface for {@link SpdyFrameDecoder}.
22   */
23  public interface SpdyFrameDecoderDelegate {
24  
25      /**
26       * Called when a DATA frame is received.
27       */
28      void readDataFrame(int streamId, boolean last, ChannelBuffer data);
29  
30      /**
31       * Called when a SYN_STREAM frame is received.
32       * The Name/Value Header Block is not included. See readHeaderBlock().
33       */
34      void readSynStreamFrame(
35            int streamId, int associatedToStreamId, byte priority, boolean last, boolean unidirectional);
36  
37      /**
38       * Called when a SYN_REPLY frame is received.
39       * The Name/Value Header Block is not included. See readHeaderBlock().
40       */
41      void readSynReplyFrame(int streamId, boolean last);
42  
43      /**
44       * Called when a RST_STREAM frame is received.
45       */
46      void readRstStreamFrame(int streamId, int statusCode);
47  
48      /**
49       * Called when a SETTINGS frame is received.
50       * Settings are not included. See readSetting().
51       */
52      void readSettingsFrame(boolean clearPersisted);
53  
54      /**
55       * Called when an individual setting within a SETTINGS frame is received.
56       */
57      void readSetting(int id, int value, boolean persistValue, boolean persisted);
58  
59      /**
60       * Called when the entire SETTINGS frame has been received.
61       */
62      void readSettingsEnd();
63  
64      /**
65       * Called when a PING frame is received.
66       */
67      void readPingFrame(int id);
68  
69      /**
70       * Called when a GOAWAY frame is received.
71       */
72      void readGoAwayFrame(int lastGoodStreamId, int statusCode);
73  
74      /**
75       * Called when a HEADERS frame is received.
76       * The Name/Value Header Block is not included. See readHeaderBlock().
77       */
78      void readHeadersFrame(int streamId, boolean last);
79  
80      /**
81       * Called when a WINDOW_UPDATE frame is received.
82       */
83      void readWindowUpdateFrame(int streamId, int deltaWindowSize);
84  
85      /**
86       * Called when the header block within a SYN_STREAM, SYN_REPLY, or HEADERS frame is received.
87       */
88      void readHeaderBlock(ChannelBuffer headerBlock);
89  
90      /**
91       * Called when an entire header block has been received.
92       */
93      void readHeaderBlockEnd();
94  
95      /**
96       * Called when an unrecoverable session error has occurred.
97       */
98      void readFrameError(String message);
99  }