QuicStreamChannelUnsafe Class — netty Architecture
Architecture documentation for the QuicStreamChannelUnsafe class in QuicheQuicStreamChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 77188bb7_e7ad_de01_3b54_5bc50b9e2df1["QuicStreamChannelUnsafe"] 39ad0588_a62e_d5d4_0789_23d511692643["QuicheQuicStreamChannel.java"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|defined in| 39ad0588_a62e_d5d4_0789_23d511692643 c737b8e3_53f6_4cb2_52b5_046d5dcec890["connect()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| c737b8e3_53f6_4cb2_52b5_046d5dcec890 3945de9a_84d0_4fbf_7e09_189541cf620c["recvBufAllocHandle()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 3945de9a_84d0_4fbf_7e09_189541cf620c 9bc33d4b_5d66_7bf2_f543_c9d95ebda44b["SocketAddress()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 9bc33d4b_5d66_7bf2_f543_c9d95ebda44b 479f37b8_4001_0713_441c_36144865a2e5["register()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 479f37b8_4001_0713_441c_36144865a2e5 539f4e5a_dcce_aecf_a9f0_26d50fbf2a02["bind()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 539f4e5a_dcce_aecf_a9f0_26d50fbf2a02 aa534f9b_aee4_4895_7889_dae77c626cfc["disconnect()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| aa534f9b_aee4_4895_7889_dae77c626cfc 1123715f_0f63_323f_9bab_77f6d3c50fff["close()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 1123715f_0f63_323f_9bab_77f6d3c50fff 9480cb89_9c96_28a9_4217_4c121000c348["deregister()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 9480cb89_9c96_28a9_4217_4c121000c348 dcc85143_930d_6847_5c1d_18334644fce5["invokeLater()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| dcc85143_930d_6847_5c1d_18334644fce5 d2a7518c_1c2a_4dcd_9d4e_7416917291cc["closeForcibly()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| d2a7518c_1c2a_4dcd_9d4e_7416917291cc 71da0969_c1b1_b745_dcbf_503b04d1d4fe["beginRead()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 71da0969_c1b1_b745_dcbf_503b04d1d4fe 02ba6530_dd1d_7e69_71f0_2ab5b91e6586["closeIfNeeded()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| 02ba6530_dd1d_7e69_71f0_2ab5b91e6586 da5c2828_c8c5_6172_4f45_d61e57ed89ae["writeQueued()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 -->|method| da5c2828_c8c5_6172_4f45_d61e57ed89ae
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java lines 464–1057
final class QuicStreamChannelUnsafe implements Unsafe {
@SuppressWarnings("deprecation")
private RecvByteBufAllocator.Handle recvHandle;
private final ChannelPromise voidPromise = new VoidChannelPromise(
QuicheQuicStreamChannel.this, false);
@Override
public void connect(SocketAddress remote, SocketAddress local, ChannelPromise promise) {
assert eventLoop().inEventLoop();
promise.setFailure(new UnsupportedOperationException());
}
@SuppressWarnings("deprecation")
@Override
public RecvByteBufAllocator.Handle recvBufAllocHandle() {
if (recvHandle == null) {
recvHandle = config.getRecvByteBufAllocator().newHandle();
}
return recvHandle;
}
@Override
public SocketAddress localAddress() {
return address;
}
@Override
public SocketAddress remoteAddress() {
return address;
}
@Override
public void register(EventLoop eventLoop, ChannelPromise promise) {
assert eventLoop.inEventLoop();
if (!promise.setUncancellable()) {
return;
}
if (registered) {
promise.setFailure(new IllegalStateException());
return;
}
if (eventLoop != parent.eventLoop()) {
promise.setFailure(new IllegalArgumentException());
return;
}
registered = true;
promise.setSuccess();
pipeline.fireChannelRegistered();
pipeline.fireChannelActive();
}
@Override
public void bind(SocketAddress localAddress, ChannelPromise promise) {
assert eventLoop().inEventLoop();
if (!promise.setUncancellable()) {
return;
}
promise.setFailure(new UnsupportedOperationException());
}
@Override
public void disconnect(ChannelPromise promise) {
assert eventLoop().inEventLoop();
close(promise);
}
@Override
public void close(ChannelPromise promise) {
close(null, promise);
}
void close(@Nullable ClosedChannelException writeFailCause, ChannelPromise promise) {
assert eventLoop().inEventLoop();
if (!promise.setUncancellable()) {
return;
}
if (!active || closePromise.isDone()) {
if (promise.isVoid()) {
return;
}
Defined In
Source
Frequently Asked Questions
What is the QuicStreamChannelUnsafe class?
QuicStreamChannelUnsafe is a class in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java.
Where is QuicStreamChannelUnsafe defined?
QuicStreamChannelUnsafe is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java at line 464.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free