1166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath/*
2166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * Copyright (C) 2013 Square, Inc.
3166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath *
4166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * Licensed under the Apache License, Version 2.0 (the "License");
5166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * you may not use this file except in compliance with the License.
6166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * You may obtain a copy of the License at
7166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath *
8166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath *      http://www.apache.org/licenses/LICENSE-2.0
9166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath *
10166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * Unless required by applicable law or agreed to in writing, software
11166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * distributed under the License is distributed on an "AS IS" BASIS,
12166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * See the License for the specific language governing permissions and
14166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath * limitations under the License.
15166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath */
16166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamathpackage com.squareup.okhttp.internal.spdy;
17166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath
18166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamathenum HeadersMode {
19166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  SPDY_SYN_STREAM,
20166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  SPDY_REPLY,
21166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  SPDY_HEADERS,
22166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  HTTP_20_HEADERS;
23166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath
24166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  /** Returns true if it is an error these headers to create a new stream. */
25166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  public boolean failIfStreamAbsent() {
26166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath    return this == SPDY_REPLY || this == SPDY_HEADERS;
27166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  }
28166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath
29166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  /** Returns true if it is an error these headers to update an existing stream. */
30166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  public boolean failIfStreamPresent() {
31166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath    return this == SPDY_SYN_STREAM;
32166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  }
33166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath
34166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  /**
35166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   * Returns true if it is an error these headers to be the initial headers of a
36166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   * response.
37166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   */
38166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  public boolean failIfHeadersAbsent() {
39166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath    return this == SPDY_HEADERS;
40166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  }
41166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath
42166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  /**
43166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   * Returns true if it is an error these headers to be update existing headers
44166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   * of a response.
45166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath   */
46166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  public boolean failIfHeadersPresent() {
47166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath    return this == SPDY_REPLY;
48166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath  }
49166772be0e5cfdaea1a64b9f63e4c8dbfe48cba3Narayan Kamath}
50