1 //
2 // ========================================================================
3 // Copyright (c) 1995-2016 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;
20
21 import org.eclipse.jetty.spdy.api.PushInfo;
22 import org.eclipse.jetty.spdy.api.SynInfo;
23
24 /* ------------------------------------------------------------ */
25 /**
26 * <p>A subclass container of {@link SynInfo} for unidirectional streams</p>
27 */
28 public class PushSynInfo extends SynInfo
29 {
30 public static final byte FLAG_UNIDIRECTIONAL = 2;
31
32 private int associatedStreamId;
33
34 public PushSynInfo(int associatedStreamId, PushInfo pushInfo){
35 super(pushInfo.getTimeout(), pushInfo.getUnit(), pushInfo.getHeaders(), pushInfo.isClose(), (byte)0);
36 this.associatedStreamId = associatedStreamId;
37 }
38
39 /**
40 * @return the close and unidirectional flags as integer
41 * @see #FLAG_CLOSE
42 * @see #FLAG_UNIDIRECTIONAL
43 */
44 @Override
45 public byte getFlags()
46 {
47 byte flags = super.getFlags();
48 flags += FLAG_UNIDIRECTIONAL;
49 return flags;
50 }
51
52 /**
53 * @return the id of the associated stream
54 */
55 public int getAssociatedStreamId()
56 {
57 return associatedStreamId;
58 }
59
60 }