QuicheQuicStreamChannel Class — netty Architecture
Architecture documentation for the QuicheQuicStreamChannel class in QuicheQuicStreamChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 12c209e0_2392_3384_a39f_2a0649fbd28b["QuicheQuicStreamChannel"] 39ad0588_a62e_d5d4_0789_23d511692643["QuicheQuicStreamChannel.java"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|defined in| 39ad0588_a62e_d5d4_0789_23d511692643 a89cb236_d724_f3d9_e346_aa10d47e6ff8["QuicheQuicStreamChannel()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| a89cb236_d724_f3d9_e346_aa10d47e6ff8 ac5c7155_5302_1638_cfd4_6e0cbc66342a["QuicStreamAddress()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| ac5c7155_5302_1638_cfd4_6e0cbc66342a a249dbfa_942d_d16e_c8eb_e99a04ab68ce["isLocalCreated()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| a249dbfa_942d_d16e_c8eb_e99a04ab68ce 1ddc4e81_9800_5d64_559d_1fcefda11b5e["QuicStreamType()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| 1ddc4e81_9800_5d64_559d_1fcefda11b5e d46e3d31_9ac9_1dec_c60f_c3c77a46395a["streamId()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| d46e3d31_9ac9_1dec_c60f_c3c77a46395a bb303f0c_3fda_b39d_e4f6_2218258ad766["QuicStreamPriority()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| bb303f0c_3fda_b39d_e4f6_2218258ad766 e0d43b2d_1676_72b5_396d_ed0a9a98c114["ChannelFuture()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| e0d43b2d_1676_72b5_396d_ed0a9a98c114 3b873a53_82c8_e713_2047_ad0e7a8552a1["updatePriority0()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| 3b873a53_82c8_e713_2047_ad0e7a8552a1 e3e597ec_fd99_048c_67d7_d7f7fe896ec6["isInputShutdown()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| e3e597ec_fd99_048c_67d7_d7f7fe896ec6 1bfd22cf_ed33_9f74_5cb7_ed0890bb6f50["shutdownOutput0()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| 1bfd22cf_ed33_9f74_5cb7_ed0890bb6f50 f3684435_8d40_ee02_e5ae_457ef781b213["QuicheQuicChannel()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| f3684435_8d40_ee02_e5ae_457ef781b213 cd8a53eb_7dc1_31ac_4939_0f5c40d1fe33["shutdownInput0()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| cd8a53eb_7dc1_31ac_4939_0f5c40d1fe33 0ff18cbf_91de_7810_6928_fb39a5e82937["isOutputShutdown()"] 12c209e0_2392_3384_a39f_2a0649fbd28b -->|method| 0ff18cbf_91de_7810_6928_fb39a5e82937
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java lines 52–1058
final class QuicheQuicStreamChannel extends DefaultAttributeMap implements QuicStreamChannel {
private static final ChannelMetadata METADATA = new ChannelMetadata(false, 16);
private static final InternalLogger LOGGER = InternalLoggerFactory.getInstance(QuicheQuicStreamChannel.class);
private final QuicheQuicChannel parent;
private final ChannelId id;
private final ChannelPipeline pipeline;
private final QuicStreamChannelUnsafe unsafe;
private final ChannelPromise closePromise;
private final PendingWriteQueue queue;
private final QuicStreamChannelConfig config;
private final QuicStreamAddress address;
private boolean readable;
private boolean readPending;
private boolean inRecv;
private boolean inWriteQueued;
private boolean finReceived;
private boolean finSent;
private volatile boolean registered;
private volatile boolean writable = true;
private volatile boolean active = true;
private volatile boolean inputShutdown;
private volatile boolean outputShutdown;
private volatile QuicStreamPriority priority;
private volatile long capacity;
QuicheQuicStreamChannel(QuicheQuicChannel parent, long streamId) {
this.parent = parent;
this.id = DefaultChannelId.newInstance();
unsafe = new QuicStreamChannelUnsafe();
this.pipeline = new DefaultChannelPipeline(this) {
// TODO: add some overrides maybe ?
};
config = new QuicheQuicStreamChannelConfig(this);
this.address = new QuicStreamAddress(streamId);
this.closePromise = newPromise();
queue = new PendingWriteQueue(this);
// Local created unidirectional streams have the input shutdown by spec. There will never be any data for
// these to be read.
if (parent.streamType(streamId) == QuicStreamType.UNIDIRECTIONAL && parent.isStreamLocalCreated(streamId)) {
inputShutdown = true;
}
}
@Override
public QuicStreamAddress localAddress() {
return address;
}
@Override
public QuicStreamAddress remoteAddress() {
return address;
}
@Override
public boolean isLocalCreated() {
return parent().isStreamLocalCreated(streamId());
}
@Override
public QuicStreamType type() {
return parent().streamType(streamId());
}
@Override
public long streamId() {
return address.streamId();
}
@Override
public QuicStreamPriority priority() {
return priority;
}
@Override
public ChannelFuture updatePriority(QuicStreamPriority priority, ChannelPromise promise) {
if (eventLoop().inEventLoop()) {
updatePriority0(priority, promise);
} else {
Defined In
Source
Frequently Asked Questions
What is the QuicheQuicStreamChannel class?
QuicheQuicStreamChannel is a class in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java.
Where is QuicheQuicStreamChannel defined?
QuicheQuicStreamChannel is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java at line 52.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free