Home / Class/ StreamState Class — netty Architecture

StreamState Class — netty Architecture

Architecture documentation for the StreamState class in SpdySession.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  589a9899_b8db_cc45_ce79_726a13b35861["StreamState"]
  957efa9e_42dd_908d_9fe3_af64cf28b05f["SpdySession.java"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|defined in| 957efa9e_42dd_908d_9fe3_af64cf28b05f
  1115b459_503e_d9f7_1645_aefceb20efeb["StreamState()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 1115b459_503e_d9f7_1645_aefceb20efeb
  af17e567_3cb5_599f_3773_8a9cc1a1ee53["getPriority()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| af17e567_3cb5_599f_3773_8a9cc1a1ee53
  d6fc31aa_a6dc_d970_b415_c4655d9cf0e1["isRemoteSideClosed()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| d6fc31aa_a6dc_d970_b415_c4655d9cf0e1
  2fce917c_fc90_0cc3_5cda_c64a51085187["closeRemoteSide()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 2fce917c_fc90_0cc3_5cda_c64a51085187
  ca79eaac_a013_7969_4bbe_206889d1bba8["isLocalSideClosed()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| ca79eaac_a013_7969_4bbe_206889d1bba8
  9350fc02_973e_377e_f29c_41c518e69eec["closeLocalSide()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 9350fc02_973e_377e_f29c_41c518e69eec
  ddb96814_98a7_7111_ae6d_01ea60444dbb["hasReceivedReply()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| ddb96814_98a7_7111_ae6d_01ea60444dbb
  1e0c70ec_4601_f534_2049_8d42a44f7221["receivedReply()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 1e0c70ec_4601_f534_2049_8d42a44f7221
  3bcbc20d_6da5_dffd_0ed3_b8024a177e7c["getSendWindowSize()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 3bcbc20d_6da5_dffd_0ed3_b8024a177e7c
  5741002c_9c87_22ac_cf3c_b32d8592aff0["updateSendWindowSize()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 5741002c_9c87_22ac_cf3c_b32d8592aff0
  6d35ccd3_315f_ac72_3c85_5bb712a99718["updateReceiveWindowSize()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| 6d35ccd3_315f_ac72_3c85_5bb712a99718
  ce1e2ff1_6034_9920_ba6c_47d36fd1aff6["getReceiveWindowSizeLowerBound()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| ce1e2ff1_6034_9920_ba6c_47d36fd1aff6
  d91982a2_2a03_570d_596e_a1e252f7b143["setReceiveWindowSizeLowerBound()"]
  589a9899_b8db_cc45_ce79_726a13b35861 -->|method| d91982a2_2a03_570d_596e_a1e252f7b143

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySession.java lines 233–323

    private static final class StreamState {

        private final byte priority;
        private boolean remoteSideClosed;
        private boolean localSideClosed;
        private boolean receivedReply;
        private final AtomicInteger sendWindowSize;
        private final AtomicInteger receiveWindowSize;
        private int receiveWindowSizeLowerBound;
        private final Queue<PendingWrite> pendingWriteQueue = new ConcurrentLinkedQueue<PendingWrite>();

        StreamState(
                byte priority, boolean remoteSideClosed, boolean localSideClosed,
                int sendWindowSize, int receiveWindowSize) {
            this.priority = priority;
            this.remoteSideClosed = remoteSideClosed;
            this.localSideClosed = localSideClosed;
            this.sendWindowSize = new AtomicInteger(sendWindowSize);
            this.receiveWindowSize = new AtomicInteger(receiveWindowSize);
        }

        byte getPriority() {
            return priority;
        }

        boolean isRemoteSideClosed() {
            return remoteSideClosed;
        }

        void closeRemoteSide() {
            remoteSideClosed = true;
        }

        boolean isLocalSideClosed() {
            return localSideClosed;
        }

        void closeLocalSide() {
            localSideClosed = true;
        }

        boolean hasReceivedReply() {
            return receivedReply;
        }

        void receivedReply() {
            receivedReply = true;
        }

        int getSendWindowSize() {
            return sendWindowSize.get();
        }

        int updateSendWindowSize(int deltaWindowSize) {
            return sendWindowSize.addAndGet(deltaWindowSize);
        }

        int updateReceiveWindowSize(int deltaWindowSize) {
            return receiveWindowSize.addAndGet(deltaWindowSize);
        }

        int getReceiveWindowSizeLowerBound() {
            return receiveWindowSizeLowerBound;
        }

        void setReceiveWindowSizeLowerBound(int receiveWindowSizeLowerBound) {
            this.receiveWindowSizeLowerBound = receiveWindowSizeLowerBound;
        }

        boolean putPendingWrite(PendingWrite msg) {
            return pendingWriteQueue.offer(msg);
        }

        PendingWrite getPendingWrite() {
            return pendingWriteQueue.peek();
        }

        PendingWrite removePendingWrite() {
            return pendingWriteQueue.poll();
        }

Frequently Asked Questions

What is the StreamState class?
StreamState is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySession.java.
Where is StreamState defined?
StreamState is defined in codec-http/src/main/java/io/netty/handler/codec/spdy/SpdySession.java at line 233.

Analyze Your Own Codebase

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

Try Supermodel Free