EventRecorder Class — netty Architecture
Architecture documentation for the EventRecorder class in LocalTransportThreadModelTest3.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD b29d01a7_9b00_d2de_710c_ec7ba8934c5f["EventRecorder"] 1d7a584f_0b8f_1af1_7aae_abb923f4163b["LocalTransportThreadModelTest3.java"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|defined in| 1d7a584f_0b8f_1af1_7aae_abb923f4163b 8af1d2e1_a016_ae28_75f4_fba79d5b6081["EventRecorder()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 8af1d2e1_a016_ae28_75f4_fba79d5b6081 f4205820_da57_68a9_9d99_f27717ddf842["exceptionCaught()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| f4205820_da57_68a9_9d99_f27717ddf842 798e6bfd_f883_3879_720a_63a11c1e8579["userEventTriggered()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 798e6bfd_f883_3879_720a_63a11c1e8579 bfc07eb1_7d98_bff2_991d_1ee7d4f3b77e["channelReadComplete()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| bfc07eb1_7d98_bff2_991d_1ee7d4f3b77e 9aee0e7e_e325_dc9e_e9ca_f4f9a877be3f["channelInactive()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 9aee0e7e_e325_dc9e_e9ca_f4f9a877be3f 7fd6a480_2af0_851a_049b_b1dde7daf68f["channelActive()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 7fd6a480_2af0_851a_049b_b1dde7daf68f 4d0b4d19_200d_c748_53dd_0e7c3dc082ff["channelUnregistered()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 4d0b4d19_200d_c748_53dd_0e7c3dc082ff e894dc32_6571_58c2_819d_cc57c554dd56["channelRegistered()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| e894dc32_6571_58c2_819d_cc57c554dd56 3aa7e318_86e5_29de_2c94_f8dd8a483e94["channelRead()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 3aa7e318_86e5_29de_2c94_f8dd8a483e94 3e7e70cd_b9a9_6214_db90_2c2453ec3ae0["write()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 3e7e70cd_b9a9_6214_db90_2c2453ec3ae0 04057a49_40b7_855f_2a43_696c78303b47["read()"] b29d01a7_9b00_d2de_710c_ec7ba8934c5f -->|method| 04057a49_40b7_855f_2a43_696c78303b47
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest3.java lines 267–336
private static final class EventRecorder extends ChannelDuplexHandler {
private final Queue<EventType> events;
private final boolean inbound;
EventRecorder(Queue<EventType> events, boolean inbound) {
this.events = events;
this.inbound = inbound;
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
events.add(EventType.EXCEPTION_CAUGHT);
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (inbound) {
events.add(EventType.USER_EVENT);
}
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
if (inbound) {
events.add(EventType.MESSAGE_RECEIVED_LAST);
}
}
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
events.add(EventType.INACTIVE);
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
events.add(EventType.ACTIVE);
}
@Override
public void channelUnregistered(ChannelHandlerContext ctx) throws Exception {
events.add(EventType.UNREGISTERED);
}
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
events.add(EventType.REGISTERED);
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
if (inbound) {
events.add(EventType.MESSAGE_RECEIVED);
}
}
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
if (!inbound) {
events.add(EventType.WRITE);
}
promise.setSuccess();
}
@Override
public void read(ChannelHandlerContext ctx) {
if (!inbound) {
events.add(EventType.READ);
}
}
}
Source
Frequently Asked Questions
What is the EventRecorder class?
EventRecorder is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest3.java.
Where is EventRecorder defined?
EventRecorder is defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest3.java at line 267.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free