Home / Class/ DefaultStream Class — netty Architecture

DefaultStream Class — netty Architecture

Architecture documentation for the DefaultStream class in DefaultHttp2Connection.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  0b15cc4a_c7cf_6126_9457_993204f4395b["DefaultStream"]
  c1b91a38_3d50_98cc_116d_1d9e5bc49432["DefaultHttp2Connection.java"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|defined in| c1b91a38_3d50_98cc_116d_1d9e5bc49432
  49741a3a_f57a_2c21_d0a3_4f12e59d3dcb["DefaultStream()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 49741a3a_f57a_2c21_d0a3_4f12e59d3dcb
  9d7263ab_8421_ff18_0764_884071aa14a0["id()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 9d7263ab_8421_ff18_0764_884071aa14a0
  78048ee2_29ff_a4f2_17e7_54eef9bb2571["State()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 78048ee2_29ff_a4f2_17e7_54eef9bb2571
  56d2163e_8055_0372_1e6b_64effe1eee8e["isResetSent()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 56d2163e_8055_0372_1e6b_64effe1eee8e
  b0bbabf3_9ef1_59e5_be02_dd1e1c9fd442["Http2Stream()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| b0bbabf3_9ef1_59e5_be02_dd1e1c9fd442
  8d8c6eaa_96e7_4a89_353f_720ac108ac3a["isHeadersSent()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 8d8c6eaa_96e7_4a89_353f_720ac108ac3a
  33e8a235_1a32_7bb4_64d8_de45e563d9b2["isTrailersSent()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 33e8a235_1a32_7bb4_64d8_de45e563d9b2
  01b98b12_d52d_6527_a46a_845349920a32["isHeadersReceived()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 01b98b12_d52d_6527_a46a_845349920a32
  a6479948_4941_78bb_c1c2_e8399bc468b3["isTrailersReceived()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| a6479948_4941_78bb_c1c2_e8399bc468b3
  b90dce65_2226_bb27_0666_9740e1616762["isPushPromiseSent()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| b90dce65_2226_bb27_0666_9740e1616762
  dfbe2150_e182_9ad0_d801_bc385c8749d3["V()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| dfbe2150_e182_9ad0_d801_bc385c8749d3
  c5bb1d90_450c_6623_163c_34de2a1879a6["activate()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| c5bb1d90_450c_6623_163c_34de2a1879a6
  1a598dc6_ae75_5736_9f9e_72a81d3979dd["createdBy()"]
  0b15cc4a_c7cf_6126_9457_993204f4395b -->|method| 1a598dc6_ae75_5736_9f9e_72a81d3979dd

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2Connection.java lines 381–625

    private class DefaultStream implements Http2Stream {
        private static final byte META_STATE_SENT_RST = 1;
        private static final byte META_STATE_SENT_HEADERS = 1 << 1;
        private static final byte META_STATE_SENT_TRAILERS = 1 << 2;
        private static final byte META_STATE_SENT_PUSHPROMISE = 1 << 3;
        private static final byte META_STATE_RECV_HEADERS = 1 << 4;
        private static final byte META_STATE_RECV_TRAILERS = 1 << 5;
        private final int id;
        private final long identity;
        private final PropertyMap properties = new PropertyMap();
        private State state;
        private byte metaState;

        DefaultStream(long identity, int id, State state) {
            this.identity = identity;
            this.id = id;
            this.state = state;
        }

        @Override
        public final int id() {
            return id;
        }

        @Override
        public final State state() {
            return state;
        }

        @Override
        public boolean isResetSent() {
            return (metaState & META_STATE_SENT_RST) != 0;
        }

        @Override
        public Http2Stream resetSent() {
            metaState |= META_STATE_SENT_RST;
            return this;
        }

        @Override
        public Http2Stream headersSent(boolean isInformational) {
            if (!isInformational) {
                metaState |= isHeadersSent() ? META_STATE_SENT_TRAILERS : META_STATE_SENT_HEADERS;
            }
            return this;
        }

        @Override
        public boolean isHeadersSent() {
            return (metaState & META_STATE_SENT_HEADERS) != 0;
        }

        @Override
        public boolean isTrailersSent() {
            return (metaState & META_STATE_SENT_TRAILERS) != 0;
        }

        @Override
        public Http2Stream headersReceived(boolean isInformational) {
            if (!isInformational) {
                metaState |= isHeadersReceived() ? META_STATE_RECV_TRAILERS : META_STATE_RECV_HEADERS;
            }
            return this;
        }

        @Override
        public boolean isHeadersReceived() {
            return (metaState & META_STATE_RECV_HEADERS) != 0;
        }

        @Override
        public boolean isTrailersReceived() {
            return (metaState & META_STATE_RECV_TRAILERS) != 0;
        }

        @Override
        public Http2Stream pushPromiseSent() {
            metaState |= META_STATE_SENT_PUSHPROMISE;
            return this;
        }

Frequently Asked Questions

What is the DefaultStream class?
DefaultStream is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2Connection.java.
Where is DefaultStream defined?
DefaultStream is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2Connection.java at line 381.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free