io.netty.buffer.ByteBufUtil#copy ( )源码实例Demo

下面列出了io.netty.buffer.ByteBufUtil#copy ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netty-4.1.22   文件: RtspEncoder.java
@Override
protected void encodeInitialLine(final ByteBuf buf, final HttpMessage message)
       throws Exception {
    if (message instanceof HttpRequest) {
        HttpRequest request = (HttpRequest) message;
        ByteBufUtil.copy(request.method().asciiName(), buf);
        buf.writeByte(SP);
        buf.writeCharSequence(request.uri(), CharsetUtil.UTF_8);
        buf.writeByte(SP);
        buf.writeCharSequence(request.protocolVersion().toString(), CharsetUtil.US_ASCII);
        ByteBufUtil.writeShortBE(buf, CRLF_SHORT);
    } else if (message instanceof HttpResponse) {
        HttpResponse response = (HttpResponse) message;
        buf.writeCharSequence(response.protocolVersion().toString(), CharsetUtil.US_ASCII);
        buf.writeByte(SP);
        ByteBufUtil.copy(response.status().codeAsText(), buf);
        buf.writeByte(SP);
        buf.writeCharSequence(response.status().reasonPhrase(), CharsetUtil.US_ASCII);
        ByteBufUtil.writeShortBE(buf, CRLF_SHORT);
    } else {
        throw new UnsupportedMessageTypeException("Unsupported type "
                            + StringUtil.simpleClassName(message));
    }
}
 
源代码2 项目: netty-4.1.22   文件: HttpHeaders.java
@Deprecated
public static void encodeAscii(CharSequence seq, ByteBuf buf) {
    if (seq instanceof AsciiString) {
        ByteBufUtil.copy((AsciiString) seq, 0, buf, seq.length());
    } else {
        buf.writeCharSequence(seq, CharsetUtil.US_ASCII);
    }
}
 
源代码3 项目: netty-4.1.22   文件: HttpHeadersEncoder.java
private static void writeAscii(ByteBuf buf, int offset, CharSequence value) {
    if (value instanceof AsciiString) {
        ByteBufUtil.copy((AsciiString) value, 0, buf, offset, value.length());
    } else {
        buf.setCharSequence(offset, value, CharsetUtil.US_ASCII);
    }
}
 
源代码4 项目: netty-4.1.22   文件: HttpResponseStatus.java
void encode(ByteBuf buf) {
    if (bytes == null) {
        ByteBufUtil.copy(codeAsText, buf);
        buf.writeByte(SP);
        buf.writeCharSequence(reasonPhrase, CharsetUtil.US_ASCII);
    } else {
        buf.writeBytes(bytes);
    }
}
 
源代码5 项目: netty-4.1.22   文件: AsciiHeadersEncoder.java
private static void writeAscii(ByteBuf buf, int offset, CharSequence value) {
    if (value instanceof AsciiString) {
        ByteBufUtil.copy((AsciiString) value, 0, buf, offset, value.length());
    } else {
        buf.setCharSequence(offset, value, CharsetUtil.US_ASCII);
    }
}
 
源代码6 项目: brpc-java   文件: HttpHeadersEncoder.java
private static void writeAscii(ByteBuf buf, int offset, CharSequence value) {
    if (value instanceof AsciiString) {
        ByteBufUtil.copy((AsciiString) value, 0, buf, offset, value.length());
    } else {
        buf.setCharSequence(offset, value, CharsetUtil.US_ASCII);
    }
}
 
源代码7 项目: brpc-java   文件: BrpcHttpResponseEncoder.java
@Override
protected void encodeInitialLine(ByteBuf buf, HttpResponse response) throws Exception {
    buf.writeCharSequence(response.protocolVersion().text(), CharsetUtil.US_ASCII);
    buf.writeByte(SP);
    ByteBufUtil.copy(response.status().codeAsText(), buf);
    buf.writeByte(SP);
    buf.writeCharSequence(response.status().reasonPhrase(), CharsetUtil.US_ASCII);
    ByteBufUtil.writeShortBE(buf, CRLF_SHORT);
}
 
源代码8 项目: armeria   文件: ArmeriaServerCall.java
private static void writeAscii(ByteBuf buf, int offset, CharSequence value, int valueLen) {
    if (value instanceof AsciiString) {
        ByteBufUtil.copy((AsciiString) value, 0, buf, offset, valueLen);
    } else {
        writeCharSequence(buf, offset, value, valueLen);
    }
}
 
@Override
protected void encodeInitialLine(ByteBuf buf, HttpRequest request) throws Exception {
    AsciiString method = request.method().asciiName();
    ByteBufUtil.copy(method, method.arrayOffset(), buf, method.length());
    buf.writeByte(SP);

    // Add / as absolute path if no is present.
    // See http://tools.ietf.org/html/rfc2616#section-5.1.2
    String uri = request.uri();

    if (uri.isEmpty()) {
        uri += SLASH;
    } else {
        int start = uri.indexOf("://");
        if (start != -1 && uri.charAt(0) != SLASH) {
            int startIndex = start + 3;
            // Correctly handle query params.
            // See https://github.com/netty/netty/issues/2732
            int index = uri.indexOf(QUESTION_MARK, startIndex);
            if (index == -1) {
                if (uri.lastIndexOf(SLASH) <= startIndex) {
                    uri += SLASH;
                }
            } else {
                if (uri.lastIndexOf(SLASH, index) <= startIndex) {
                    int len = uri.length();
                    StringBuilder sb = new StringBuilder(len + 1);
                    sb.append(uri, 0, index)
                            .append(SLASH)
                            .append(uri, index, len);
                    uri = sb.toString();
                }
            }
        }
    }

    buf.writeBytes(uri.getBytes(CharsetUtil.UTF_8));

    buf.writeByte(SP);
    request.protocolVersion().encode(buf);
    buf.writeBytes(CRLF);
}
 
源代码10 项目: netty-4.1.22   文件: HttpRequestEncoder.java
@Override
    protected void encodeInitialLine(ByteBuf buf, HttpRequest request) throws Exception {
        ByteBufUtil.copy(request.method().asciiName(), buf);

//        获取请求资源路径
        String uri = request.uri();

        if (uri.isEmpty()) {
            // Add " / " as absolute path if uri is not present.如果uri不存在,则添加“/”作为绝对路径。
            // See http://tools.ietf.org/html/rfc2616#section-5.1.2
            ByteBufUtil.writeMediumBE(buf, SPACE_SLASH_AND_SPACE_MEDIUM);
        } else {
            CharSequence uriCharSequence = uri;
            boolean needSlash = false;
            int start = uri.indexOf("://");
            if (start != -1 && uri.charAt(0) != SLASH) {
                start += 3;
                // Correctly handle query params.正确处理查询参数。
                // See https://github.com/netty/netty/issues/2732
                int index = uri.indexOf(QUESTION_MARK, start);
                if (index == -1) {
                    if (uri.lastIndexOf(SLASH) < start) {
                        needSlash = true;
                    }
                } else {
                    if (uri.lastIndexOf(SLASH, index) < start) {
                        uriCharSequence = new StringBuilder(uri).insert(index, SLASH);
                    }
                }
            }
            buf.writeByte(SP).writeCharSequence(uriCharSequence, CharsetUtil.UTF_8);
            if (needSlash) {
                // write "/ " after uri
                ByteBufUtil.writeShortBE(buf, SLASH_AND_SPACE_SHORT);
            } else {
                buf.writeByte(SP);
            }
        }

        request.protocolVersion().encode(buf);
        ByteBufUtil.writeShortBE(buf, CRLF_SHORT);
    }
 
源代码11 项目: brpc-java   文件: BrpcHttpRequestEncoder.java
@Override
protected void encodeInitialLine(ByteBuf buf, HttpRequest request) throws Exception {
    ByteBufUtil.copy(request.method().asciiName(), buf);

    String uri = request.uri();

    if (uri.isEmpty()) {
        // Add " / " as absolute path if uri is not present.
        // See http://tools.ietf.org/html/rfc2616#section-5.1.2
        ByteBufUtil.writeMediumBE(buf, SPACE_SLASH_AND_SPACE_MEDIUM);
    } else {
        CharSequence uriCharSequence = uri;
        boolean needSlash = false;
        int start = uri.indexOf("://");
        if (start != -1 && uri.charAt(0) != SLASH) {
            start += 3;
            // Correctly handle query params.
            // See https://github.com/netty/netty/issues/2732
            int index = uri.indexOf(QUESTION_MARK, start);
            if (index == -1) {
                if (uri.lastIndexOf(SLASH) < start) {
                    needSlash = true;
                }
            } else {
                if (uri.lastIndexOf(SLASH, index) < start) {
                    uriCharSequence = new StringBuilder(uri).insert(index, SLASH);
                }
            }
        }
        buf.writeByte(SP).writeCharSequence(uriCharSequence, CharsetUtil.UTF_8);
        if (needSlash) {
            // write "/ " after uri
            ByteBufUtil.writeShortBE(buf, SLASH_AND_SPACE_SHORT);
        } else {
            buf.writeByte(SP);
        }
    }

    buf.writeCharSequence(request.protocolVersion().text(), CharsetUtil.US_ASCII);
    ByteBufUtil.writeShortBE(buf, CRLF_SHORT);
}