Home / Class/ RxtxChannel Class — netty Architecture

RxtxChannel Class — netty Architecture

Architecture documentation for the RxtxChannel class in RxtxChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  201cc14a_6932_22fb_8865_65f34c6ad37f["RxtxChannel"]
  da4861a2_5b5d_56e1_8521_a9674728c5f5["RxtxChannel.java"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|defined in| da4861a2_5b5d_56e1_8521_a9674728c5f5
  0ed28a7a_bbd4_2735_9d88_4c80a0842403["RxtxChannel()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 0ed28a7a_bbd4_2735_9d88_4c80a0842403
  82767a50_3ead_a406_81b1_4058b3037d1c["RxtxChannelConfig()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 82767a50_3ead_a406_81b1_4058b3037d1c
  3bf3e024_b69a_6d63_1f9b_2731c0749f1e["isOpen()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 3bf3e024_b69a_6d63_1f9b_2731c0749f1e
  02242bea_c22f_16d1_f5e6_d21a0891edab["AbstractUnsafe()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 02242bea_c22f_16d1_f5e6_d21a0891edab
  8a8f51ff_76fc_be17_20c2_37f9dc65371f["doConnect()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 8a8f51ff_76fc_be17_20c2_37f9dc65371f
  2490054d_3322_de70_5342_182d92e5ee66["doInit()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 2490054d_3322_de70_5342_182d92e5ee66
  17bd4d38_2197_ef58_56c1_41a803f34098["RxtxDeviceAddress()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 17bd4d38_2197_ef58_56c1_41a803f34098
  8542e4ca_bfd3_42b5_0d47_17562e535be4["doBind()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 8542e4ca_bfd3_42b5_0d47_17562e535be4
  729107f3_bb0a_9e20_ae11_b20defc79010["doDisconnect()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 729107f3_bb0a_9e20_ae11_b20defc79010
  b14a78b5_15ff_e89c_26b6_9e3ada9be316["doClose()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| b14a78b5_15ff_e89c_26b6_9e3ada9be316
  3516a76b_a867_0270_32a6_a19bac2c8b57["isInputShutdown()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| 3516a76b_a867_0270_32a6_a19bac2c8b57
  d558c76f_04e5_cc18_98e5_9c4def656841["ChannelFuture()"]
  201cc14a_6932_22fb_8865_65f34c6ad37f -->|method| d558c76f_04e5_cc18_98e5_9c4def656841

Relationship Graph

Source Code

transport-rxtx/src/main/java/io/netty/channel/rxtx/RxtxChannel.java lines 42–195

@Deprecated
public class RxtxChannel extends OioByteStreamChannel {

    private static final RxtxDeviceAddress LOCAL_ADDRESS = new RxtxDeviceAddress("localhost");

    private final RxtxChannelConfig config;

    private boolean open = true;
    private RxtxDeviceAddress deviceAddress;
    private SerialPort serialPort;

    public RxtxChannel() {
        super(null);

        config = new DefaultRxtxChannelConfig(this);
    }

    @Override
    public RxtxChannelConfig config() {
        return config;
    }

    @Override
    public boolean isOpen() {
        return open;
    }

    @Override
    protected AbstractUnsafe newUnsafe() {
        return new RxtxUnsafe();
    }

    @Override
    protected void doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception {
        RxtxDeviceAddress remote = (RxtxDeviceAddress) remoteAddress;
        final CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(remote.value());
        final CommPort commPort = cpi.open(getClass().getName(), 1000);
        commPort.enableReceiveTimeout(config().getOption(READ_TIMEOUT));
        deviceAddress = remote;

        serialPort = (SerialPort) commPort;
    }

    protected void doInit() throws Exception {
        serialPort.setSerialPortParams(
            config().getOption(BAUD_RATE),
            config().getOption(DATA_BITS).value(),
            config().getOption(STOP_BITS).value(),
            config().getOption(PARITY_BIT).value()
        );
        serialPort.setDTR(config().getOption(DTR));
        serialPort.setRTS(config().getOption(RTS));

        activate(serialPort.getInputStream(), serialPort.getOutputStream());
    }

    @Override
    public RxtxDeviceAddress localAddress() {
        return (RxtxDeviceAddress) super.localAddress();
    }

    @Override
    public RxtxDeviceAddress remoteAddress() {
        return (RxtxDeviceAddress) super.remoteAddress();
    }

    @Override
    protected RxtxDeviceAddress localAddress0() {
        return LOCAL_ADDRESS;
    }

    @Override
    protected RxtxDeviceAddress remoteAddress0() {
        return deviceAddress;
    }

    @Override
    protected void doBind(SocketAddress localAddress) throws Exception {
        throw new UnsupportedOperationException();
    }

Frequently Asked Questions

What is the RxtxChannel class?
RxtxChannel is a class in the netty codebase, defined in transport-rxtx/src/main/java/io/netty/channel/rxtx/RxtxChannel.java.
Where is RxtxChannel defined?
RxtxChannel is defined in transport-rxtx/src/main/java/io/netty/channel/rxtx/RxtxChannel.java at line 42.

Analyze Your Own Codebase

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

Try Supermodel Free