add
This commit is contained in:
135
Assets/trCRM/upgradeRes4Dev/priority/lua/bio/BioUtl.lua
Normal file
135
Assets/trCRM/upgradeRes4Dev/priority/lua/bio/BioUtl.lua
Normal file
@@ -0,0 +1,135 @@
|
||||
-- bio 工具
|
||||
do
|
||||
require("bio.BioInputStream")
|
||||
require("bio.BioOutputStream")
|
||||
require("public.CLLPool")
|
||||
|
||||
BioUtl = {}
|
||||
|
||||
---@type LuaB2InputStream
|
||||
local inputStreemPool
|
||||
local outputStreemPool
|
||||
|
||||
local isInited = false
|
||||
function BioUtl.init()
|
||||
if isInited then
|
||||
return
|
||||
end
|
||||
isInited = true
|
||||
inputStreemPool = CLLPool.new(LuaB2InputStream)
|
||||
outputStreemPool = CLLPool.new(LuaB2OutputStream)
|
||||
end
|
||||
|
||||
function BioUtl.writeObject(obj)
|
||||
BioUtl.init()
|
||||
--local os = LuaB2OutputStream.new()
|
||||
local os = outputStreemPool:borrow()
|
||||
os:init()
|
||||
local status, result = pcall(BioOutputStream.writeObject, os, obj)
|
||||
if status then
|
||||
local bytes = os:toBytes()
|
||||
os:release()
|
||||
--os = nil
|
||||
outputStreemPool:retObj(os)
|
||||
return bytes
|
||||
else
|
||||
os:release()
|
||||
outputStreemPool:retObj(os)
|
||||
print(result)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function BioUtl.readObject(bytes)
|
||||
if bytes == nil then
|
||||
printe("BioUtl.readObject, the param is nil")
|
||||
return nil
|
||||
end
|
||||
BioUtl.init()
|
||||
--local is = LuaB2InputStream.new(bytes)
|
||||
local is = inputStreemPool:borrow()
|
||||
is:init(bytes)
|
||||
local status, result = pcall(BioInputStream.readObject, is)
|
||||
if status then
|
||||
local readLen = is.pos - 1 -- 读取了多长
|
||||
is:release()
|
||||
--is = nil
|
||||
inputStreemPool:retObj(is)
|
||||
return result, readLen
|
||||
else
|
||||
is:release()
|
||||
inputStreemPool:retObj(is)
|
||||
print(result)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function BioUtl.int2bio(val)
|
||||
BioUtl.init()
|
||||
--local os = LuaB2OutputStream.new()
|
||||
local os = outputStreemPool:borrow()
|
||||
os:init()
|
||||
local status, result = pcall(BioOutputStream.writeInt, os, val)
|
||||
if status then
|
||||
local bytes = os:toBytes()
|
||||
os:release()
|
||||
--os = nil
|
||||
outputStreemPool:retObj(os)
|
||||
return bytes
|
||||
else
|
||||
os:release()
|
||||
outputStreemPool:retObj(os)
|
||||
print(result)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function BioUtl.bio2int(bytes)
|
||||
if bytes == nil then
|
||||
return 0
|
||||
end
|
||||
return BioUtl.bio2number(bytes)
|
||||
end
|
||||
|
||||
function BioUtl.long2bio(val)
|
||||
BioUtl.init()
|
||||
--local os = LuaB2OutputStream.new()
|
||||
local os = outputStreemPool:borrow()
|
||||
os:init()
|
||||
local status, result = pcall(BioOutputStream.writeLong, os, val)
|
||||
if status then
|
||||
local bytes = os:toBytes()
|
||||
os:release()
|
||||
--os = nil
|
||||
outputStreemPool:retObj(os)
|
||||
return bytes
|
||||
else
|
||||
os:release()
|
||||
outputStreemPool:retObj(os)
|
||||
print(result)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function BioUtl.bio2long(bytes)
|
||||
return BioUtl.bio2number(bytes)
|
||||
end
|
||||
|
||||
function BioUtl.bio2number(bytes)
|
||||
if bytes == nil then
|
||||
return 0
|
||||
end
|
||||
local n = BioUtl.readObject(bytes)
|
||||
if type(n) == "number" then
|
||||
return n
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
function BioUtl.number2bio(n)
|
||||
return BioUtl.writeObject(n)
|
||||
end
|
||||
--------------------------------------------
|
||||
return BioUtl
|
||||
end
|
||||
Reference in New Issue
Block a user