Home / Function/ encode() — netty Function Reference

encode() — netty Function Reference

Architecture documentation for the encode() function in SmtpRequestEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  bdebf017_c4ec_ab04_d0f6_c9c4ebdfc609["encode()"]
  640fb209_7291_2bea_5631_bccb325c0ab8["SmtpRequestEncoder"]
  bdebf017_c4ec_ab04_d0f6_c9c4ebdfc609 -->|defined in| 640fb209_7291_2bea_5631_bccb325c0ab8
  d5329265_57f0_6eb0_ac33_6964c34ac0bc["writeParameters()"]
  bdebf017_c4ec_ab04_d0f6_c9c4ebdfc609 -->|calls| d5329265_57f0_6eb0_ac33_6964c34ac0bc
  style bdebf017_c4ec_ab04_d0f6_c9c4ebdfc609 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-smtp/src/main/java/io/netty/handler/codec/smtp/SmtpRequestEncoder.java lines 52–93

    @Override
    protected void encode(ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception {
        if (msg instanceof SmtpRequest) {
            final SmtpRequest req = (SmtpRequest) msg;
            if (contentExpected) {
                if (req.command().equals(SmtpCommand.RSET)) {
                    contentExpected = false;
                } else {
                    throw new IllegalStateException("SmtpContent expected");
                }
            }
            boolean release = true;
            final ByteBuf buffer = ctx.alloc().buffer();
            try {
                req.command().encode(buffer);
                boolean notEmpty = req.command() != SmtpCommand.EMPTY;
                writeParameters(req.parameters(), buffer, notEmpty);
                ByteBufUtil.writeShortBE(buffer, CRLF_SHORT);
                out.add(buffer);
                release = false;
                if (req.command().isContentExpected()) {
                    contentExpected = true;
                }
            } finally {
                if (release) {
                    buffer.release();
                }
            }
        }

        if (msg instanceof SmtpContent) {
            if (!contentExpected) {
                throw new IllegalStateException("No SmtpContent expected");
            }
            final ByteBuf content = ((SmtpContent) msg).content();
            out.add(content.retain());
            if (msg instanceof LastSmtpContent) {
                out.add(DOT_CRLF_BUFFER.retainedDuplicate());
                contentExpected = false;
            }
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does encode() do?
encode() is a function in the netty codebase, defined in codec-smtp/src/main/java/io/netty/handler/codec/smtp/SmtpRequestEncoder.java.
Where is encode() defined?
encode() is defined in codec-smtp/src/main/java/io/netty/handler/codec/smtp/SmtpRequestEncoder.java at line 52.
What does encode() call?
encode() calls 1 function(s): writeParameters.

Analyze Your Own Codebase

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

Try Supermodel Free