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