Skip to content

Commit

Permalink
优化bitarray接口
Browse files Browse the repository at this point in the history
  • Loading branch information
hero1s committed May 27, 2024
1 parent 2dd5338 commit 36492f1
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 19 deletions.
16 changes: 14 additions & 2 deletions core/plugins/src/lcodec/bitarray.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,13 +178,25 @@ namespace lcodec {
return res;
}

std::string to_string(size_t i) {
std::string to_string() {
std::string str = "";
for (size_t i = 0; i < size_; ++i) {
str.append(raw_get_bit(i) ? "1" : "0");
}
return str;
}

std::string dump() {
std::string str = "bitarray<";
str.append(std::to_string(size_));
str.append(">[");
for (size_t i = 0; i < size_; ++i) {
str.append(raw_get_bit(i) ? "1," : "0,");
if (i > 0 && i % 8 == 0) {
str.append(",");
}
str.append(raw_get_bit(i) ? "1" : "0");
}
str.append("]");
return str;
}

Expand Down
3 changes: 2 additions & 1 deletion core/plugins/src/lcodec/lcodec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ namespace lcodec {
"from_uint8", &bitarray::from_number<uint8_t>,
"from_uint16", &bitarray::from_number<uint16_t>,
"from_uint32", &bitarray::from_number<uint32_t>,
"from_uint64", &bitarray::from_number<uint64_t>
"from_uint64", &bitarray::from_number<uint64_t>,
"dump",&bitarray::dump
);

return llcodec;
Expand Down
4 changes: 2 additions & 2 deletions server/main_qtest.lua
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ hive.startup(function()
--import("qtest/zset_test.lua")
--import("qtest/crypt_test.lua")

import("qtest/mongo_test.lua")
--import("qtest/mongo_test.lua")
--import("qtest/luaext_test.lua")
--import("qtest/timer_test.lua")
--import("qtest/crab_test.lua")
Expand All @@ -25,7 +25,7 @@ hive.startup(function()
--import("qtest/prof_test.lua")
--import("qtest/lrandom_test.lua")
--import("qtest/nacos_test.lua")
--import("qtest/bitarray_test.lua")
import("qtest/bitarray_test.lua")
--import("qtest/guid_test.lua")
--import("qtest/helper_test.lua")
--import("qtest/tcp_test.lua")
Expand Down
31 changes: 17 additions & 14 deletions server/qtest/bitarray_test.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,32 @@ local lcodec = require("lcodec")

local log_debug = logger.debug

local array = lcodec.bitarray(32)
log_debug("array1: {}", array.to_string())
local array = lcodec.bitarray(32)
log_debug("array1: %s", array.dump())
array.fill(1)
log_debug("array11: {}", array.to_string())
log_debug("array11: %s", array.dump())
array.flip(1)
log_debug("array12: {}", array.to_string())
log_debug("array12: %s", array.dump())
array.flip_bit(3)
log_debug("array13: {}-{}", array.to_string(), array.get_bit(3))
log_debug("array13: %s-%s", array.dump(), array.get_bit(3))
array.from_uint32(65535)
log_debug("array2: {}-{}", array.to_string(), array.to_uint32())
log_debug("array2: %s-%s", array.dump(), array.to_uint32())
array.rshift(1)
log_debug("array3: {}-{}", array.to_string(), array.to_uint32())
log_debug("array3: %s-%s", array.dump(), array.to_uint32())
array.lshift(1)
log_debug("array4: {}-{}", array.to_string(), array.to_uint32())
log_debug("array4: %s-%s", array.dump(), array.to_uint32())
array.set_bit(32, 1)
local a2 = array.clone()
log_debug("array5: {}", a2.to_string())
log_debug("array5: %s", a2.dump())
local a3 = a2.slice(1, 16)
log_debug("array51: {}", a3.to_string())
log_debug("array51: %s", a3.dump())
local a4 = a2.slice(17)
log_debug("array52: {}", a4.to_string())
log_debug("array52: %s", a4.dump())
a4.concat(a3)
log_debug("array6: {}", a4.to_string())
log_debug("array6: %s", a4.dump())
a4.reverse()
log_debug("array7: {}", a4.to_string())
log_debug("array8: {}-{}", a4.equal(a2), a3.equal(a2))
log_debug("array7: %s", a4.dump())
log_debug("array8: %s-%s", a4.equal(a2), a3.equal(a2))
local a5 = a2.clone()
a5.from_string(a2.to_string())
log_debug("array9: %s-%s,%s", a5.dump(), a5.equal(a2), a2.to_string())

0 comments on commit 36492f1

Please sign in to comment.