From 7045d77c7d914147bdc7fd04bbe2bfe2385a82c9 Mon Sep 17 00:00:00 2001 From: tursom Date: Tue, 13 Jul 2021 21:00:11 +0800 Subject: [PATCH] add skip --- .../cn/tursom/core/buffer/ByteBuffer.kt | 4 ++++ .../kotlin/cn/tursom/core/buffer/serialize.kt | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/ByteBuffer.kt b/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/ByteBuffer.kt index 2aaddbd..49144f7 100644 --- a/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/ByteBuffer.kt +++ b/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/ByteBuffer.kt @@ -89,6 +89,10 @@ interface ByteBuffer : Closeable { writePosition = 0 } + fun skip(n: Int) { + readPosition += n + } + fun get(): Byte = read { it.get() } fun getChar(byteOrder: ByteOrder = ByteOrder.nativeOrder()): Char = read { it.char } fun getShort(byteOrder: ByteOrder = ByteOrder.nativeOrder()): Short = read { it.short } diff --git a/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/serialize.kt b/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/serialize.kt index 7358435..03f66eb 100644 --- a/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/serialize.kt +++ b/ts-core/ts-buffer/src/main/kotlin/cn/tursom/core/buffer/serialize.kt @@ -11,6 +11,8 @@ package cn.tursom.core.buffer import cn.tursom.core.Unsafe.unsafe import cn.tursom.core.isStatic +import cn.tursom.core.toInt +import java.nio.ByteOrder class UnsupportedException : Exception() @@ -206,3 +208,25 @@ fun ByteBuffer.unSerialize(clazz: Class): T { inline fun ByteBuffer.unSerialize(): T { return unSerialize(T::class.java) } + +fun ByteBuffer.getIntWithSize(size: Int, byteOrder: ByteOrder = ByteOrder.nativeOrder()): Int { + var time = 4 + return toInt(byteOrder) { + if (--time < size) { + get() + } else { + 0 + } + } +} + +fun ByteBuffer.getLongWithSize(size: Int, byteOrder: ByteOrder = ByteOrder.nativeOrder()): Int { + var time = 8 + return toInt(byteOrder) { + if (--time < size) { + get() + } else { + 0 + } + } +}