本文整理汇总了Java中io.netty.buffer.ByteBuf.forEachByte方法的典型用法代码示例。如果您正苦于以下问题:Java ByteBuf.forEachByte方法的具体用法?Java ByteBuf.forEachByte怎么用?Java ByteBuf.forEachByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.netty.buffer.ByteBuf
的用法示例。
在下文中一共展示了ByteBuf.forEachByte方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: split
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
@Override
public Iterable<String> split(final ByteBuf buffer, final Charset charset, final boolean includeRemainingData) {
return () -> new AbstractIterator<String>() {
@Override
protected String computeNext() {
ByteBuf fullLine = null;
try {
if (!buffer.isReadable()) {
return endOfData();
}
final int i = buffer.forEachByte(ByteBufProcessor.FIND_CRLF);
if (i == -1) {
if (includeRemainingData) {
final ByteBuf remaining = buffer.readBytes(buffer.readableBytes());
return remaining.toString(charset);
} else {
return endOfData();
}
}
fullLine = buffer.readBytes(i);
// Strip the \r/\n bytes from the buffer.
final byte readByte = buffer.readByte(); // the \r or \n byte
if (readByte == '\r') {
buffer.readByte(); // the \n byte if previous was \r
}
return fullLine.toString(charset);
} finally {
buffer.discardReadBytes();
if (fullLine != null) {
fullLine.release();
}
}
}
};
}
示例2: process
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
@Override
protected ByteBuf process(final StreamCipher cipher, ByteBuf data) {
final ByteBuf slice = data.slice();
slice.writerIndex(0);
data.forEachByte(data.readerIndex(), data.readableBytes(), new ByteBufProcessor() {
@Override
public boolean process(byte b) throws Exception {
slice.writeByte(cipher.returnByte(b));
return true;
}
});
return data;
}
示例3: parse
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
public String parse(ByteBuf buffer) {
seq = sequenceReference.get();
seq.reset();
size = 0;
int i = buffer.forEachByte(this);
buffer.readerIndex(i + 1);
String result = seq.toString();
seq = null;
return result;
}
示例4: parse
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
public long parse(ByteBuf in) {
seq = sequenceRef.get();
seq.reset();
size = 0;
int i = in.forEachByte(this);
in.readerIndex(i);
Long result = Long.parseLong(seq.toString());
seq = null;
return result;
}
示例5: findDotAtBeginningOfLine
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
private static int findDotAtBeginningOfLine(ByteBuf buffer, int startAt, byte[] previousBytes) {
int length = buffer.readableBytes();
if (previousBytes[0] == CR && previousBytes[1] == LF && buffer.getByte(startAt) == DOT) {
return startAt;
}
if (previousBytes[1] == CR && length >= 2 && buffer.getByte(startAt) == LF && buffer.getByte(startAt + 1) == DOT) {
return startAt + 1;
}
int i = startAt;
while (++i < length) {
i = buffer.forEachByte(i, length - i, ByteProcessor.FIND_LF);
if (i == -1) {
return -1;
}
if (buffer.getByte(i - 1) == CR) {
if (i + 1 < length && buffer.getByte(i + 1) == DOT) {
return i + 1;
} else {
continue;
}
}
}
return -1;
}
示例6: byteBufProcessor
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
/**
* Listing 5.9
*/
public static void byteBufProcessor(ByteBuf buffer) {
int index = buffer.forEachByte(ByteBufProcessor.FIND_CR);
}
示例7: parse
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类
int parse(ByteBuf in) {
afterSpace = false;
rows = 0;
in.forEachByte(in.readerIndex(), in.readableBytes() - 1, this);
return rows;
}