1 //========================================================================
2 //Copyright 2011-2012 Mort Bay Consulting Pty. Ltd.
3 //------------------------------------------------------------------------
4 //All rights reserved. This program and the accompanying materials
5 //are made available under the terms of the Eclipse Public License v1.0
6 //and Apache License v2.0 which accompanies this distribution.
7 //The Eclipse Public License is available at
8 //http://www.eclipse.org/legal/epl-v10.html
9 //The Apache License v2.0 is available at
10 //http://www.opensource.org/licenses/apache2.0.php
11 //You may elect to redistribute this code under either of these licenses.
12 //========================================================================
13
14 package org.eclipse.jetty.spdy.frames;
15
16 import org.eclipse.jetty.spdy.api.SessionStatus;
17
18 public class GoAwayFrame extends ControlFrame
19 {
20 private final int lastStreamId;
21 private final int statusCode;
22
23 public GoAwayFrame(short version, int lastStreamId, int statusCode)
24 {
25 super(version, ControlFrameType.GO_AWAY, (byte)0);
26 this.lastStreamId = lastStreamId;
27 this.statusCode = statusCode;
28 }
29
30 public int getLastStreamId()
31 {
32 return lastStreamId;
33 }
34
35 public int getStatusCode()
36 {
37 return statusCode;
38 }
39
40 @Override
41 public String toString()
42 {
43 SessionStatus sessionStatus = SessionStatus.from(getStatusCode());
44 return String.format("%s last_stream=%d status=%s", super.toString(), getLastStreamId(), sessionStatus == null ? getStatusCode() : sessionStatus);
45 }
46 }