1 /* 2 * Copyright 2016 The Netty Project 3 * 4 * The Netty Project licenses this file to you under the Apache License, 5 * version 2.0 (the "License"); you may not use this file except in compliance 6 * with the License. You may obtain a copy of the License at: 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 package io.netty.handler.codec.http2; 17 18 import io.netty.buffer.ByteBuf; 19 import io.netty.buffer.ByteBufHolder; 20 import io.netty.util.internal.UnstableApi; 21 22 /** 23 * HTTP/2 DATA frame. 24 */ 25 @UnstableApi 26 public interface Http2DataFrame extends Http2StreamFrame, ByteBufHolder { 27 28 /** 29 * Frame padding to use. Will be non-negative and less than 256. 30 */ 31 int padding(); 32 33 /** 34 * Payload of DATA frame. Will not be {@code null}. 35 */ 36 @Override 37 ByteBuf content(); 38 39 /** 40 * Returns the number of bytes that are flow-controlled initially, so even if the {@link #content()} is consumed 41 * this will not change. 42 */ 43 int initialFlowControlledBytes(); 44 45 /** 46 * Returns {@code true} if the END_STREAM flag is set. 47 */ 48 boolean isEndStream(); 49 50 @Override 51 Http2DataFrame copy(); 52 53 @Override 54 Http2DataFrame duplicate(); 55 56 @Override 57 Http2DataFrame retainedDuplicate(); 58 59 @Override 60 Http2DataFrame replace(ByteBuf content); 61 62 @Override 63 Http2DataFrame retain(); 64 65 @Override 66 Http2DataFrame retain(int increment); 67 68 @Override 69 Http2DataFrame touch(); 70 71 @Override 72 Http2DataFrame touch(Object hint); 73 }