View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  package org.eclipse.jetty.spdy.api;
20  
21  import java.util.concurrent.TimeUnit;
22  
23  /**
24   * <p>A container for RST_STREAM frames data: the stream id and the stream status.</p>
25   */
26  public class RstInfo extends Info
27  {
28      private final int streamId;
29      private final StreamStatus streamStatus;
30  
31      /**
32       * <p>Creates a new {@link RstInfo} with the given stream id and stream status</p>
33       *
34       * @param timeout      the operation's timeout
35       * @param unit         the timeout's unit
36       * @param streamId     the stream id
37       * @param streamStatus the stream status
38       */
39      public RstInfo(long timeout, TimeUnit unit, int streamId, StreamStatus streamStatus)
40      {
41          super(timeout, unit);
42          this.streamId = streamId;
43          this.streamStatus = streamStatus;
44      }
45  
46      /**
47       * <p>Creates a new {@link RstInfo} with the given stream id and stream status</p>
48       *
49       * @param streamId
50       * @param streamStatus
51       */
52      public RstInfo(int streamId, StreamStatus streamStatus)
53      {
54          this(0, TimeUnit.SECONDS, streamId, streamStatus);
55      }
56  
57      /**
58       * @return the stream id
59       */
60      public int getStreamId()
61      {
62          return streamId;
63      }
64  
65      /**
66       * @return the stream status
67       */
68      public StreamStatus getStreamStatus()
69      {
70          return streamStatus;
71      }
72  
73      @Override
74      public String toString()
75      {
76          return String.format("RST stream=%d %s", streamId, streamStatus);
77      }
78  }