Skip to content

Commit 973fd8a

Browse files
committed
Merge branch 'master' of https://github.com/actboy168/bee.lua
2 parents ac2cd63 + feae141 commit 973fd8a

File tree

14 files changed

+1040
-0
lines changed

14 files changed

+1040
-0
lines changed

meta/channel.lua

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---@meta bee.channel
2+
3+
---通道库,用于线程间通信
4+
---@class bee.channel
5+
local channel = {}
6+
7+
---通道对象
8+
---@class bee.channel.box
9+
local channel_box = {}
10+
11+
---向通道推送数据
12+
---数据会被序列化后发送,支持的数据类型与 bee.serialization 相同
13+
---@param ... any 要推送的数据
14+
function channel_box:push(...)
15+
end
16+
17+
---从通道弹出数据
18+
---@return boolean ok # 是否成功弹出数据,false表示通道为空
19+
---@return any ... # 弹出的数据
20+
function channel_box:pop()
21+
end
22+
23+
---获取通道的文件描述符
24+
---可用于 epoll/select 等待通道有数据
25+
---@return lightuserdata fd # 文件描述符
26+
function channel_box:fd()
27+
end
28+
29+
---创建一个新的通道
30+
---@param name string 通道名称,必须唯一
31+
---@return bee.channel.box # 通道对象
32+
function channel.create(name)
33+
end
34+
35+
---销毁一个通道
36+
---会清空通道中的所有数据
37+
---@param name string 通道名称
38+
function channel.destroy(name)
39+
end
40+
41+
---查询一个已存在的通道
42+
---@param name string 通道名称
43+
---@return bee.channel.box? # 通道对象,如果不存在则返回nil
44+
---@return string? # 错误消息
45+
function channel.query(name)
46+
end
47+
48+
return channel

meta/crash.lua

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---@meta bee.crash
2+
3+
---崩溃处理库
4+
---@class bee.crash
5+
local crash = {}
6+
7+
---崩溃处理器对象
8+
---@class bee.crash.handler
9+
local handler = {}
10+
11+
---创建崩溃处理器
12+
---当程序崩溃时,会在指定路径生成dump文件
13+
---@param dump_path string dump文件保存路径
14+
---@return bee.crash.handler # 崩溃处理器对象
15+
function crash.create_handler(dump_path)
16+
end
17+
18+
return crash

meta/debugging.lua

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---@meta bee.debugging
2+
3+
---调试库
4+
---@class bee.debugging
5+
local debugging = {}
6+
7+
---触发断点
8+
---在调试器中会中断执行
9+
function debugging.breakpoint()
10+
end
11+
12+
---检查是否有调试器附加
13+
---@return boolean # 是否有调试器附加
14+
function debugging.is_debugger_present()
15+
end
16+
17+
---仅在有调试器附加时触发断点
18+
---如果没有调试器附加,则不执行任何操作
19+
function debugging.breakpoint_if_debugging()
20+
end
21+
22+
return debugging

meta/epoll.lua

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---@meta bee.epoll
2+
3+
---Epoll I/O多路复用库
4+
---跨平台的epoll风格API,在Windows上使用IOCP实现
5+
---@class bee.epoll
6+
---@field EPOLLIN integer 可读事件
7+
---@field EPOLLPRI integer 紧急数据可读
8+
---@field EPOLLOUT integer 可写事件
9+
---@field EPOLLERR integer 错误事件
10+
---@field EPOLLHUP integer 挂起事件
11+
---@field EPOLLRDNORM integer 普通数据可读
12+
---@field EPOLLRDBAND integer 优先数据可读
13+
---@field EPOLLWRNORM integer 普通数据可写
14+
---@field EPOLLWRBAND integer 优先数据可写
15+
---@field EPOLLMSG integer 消息事件
16+
---@field EPOLLRDHUP integer 对端关闭连接
17+
---@field EPOLLONESHOT integer 一次性事件(触发后自动删除)
18+
local epoll = {}
19+
20+
---Epoll实例对象
21+
---@class bee.epoll.fd
22+
local epfd = {}
23+
24+
---等待事件
25+
---@param timeout? integer 超时时间,单位为毫秒,-1表示无限等待
26+
---@return fun(): any?, integer? iterator # 返回迭代器函数,迭代产生 (关联对象, 事件标志)
27+
function epfd:wait(timeout)
28+
end
29+
30+
---关闭Epoll实例
31+
---@return boolean? # 成功返回true,失败返回nil
32+
---@return string? # 错误消息
33+
function epfd:close()
34+
end
35+
36+
---添加事件监听
37+
---@param fd bee.socket.fd|lightuserdata 要监听的文件描述符或套接字
38+
---@param events integer 事件标志,可组合多个EPOLL*常量
39+
---@param userdata? any 关联的用户数据,默认为fd本身
40+
---@return boolean? # 成功返回true,失败返回nil
41+
---@return string? # 错误消息
42+
function epfd:event_add(fd, events, userdata)
43+
end
44+
45+
---修改事件监听
46+
---@param fd bee.socket.fd|lightuserdata 文件描述符或套接字
47+
---@param events integer 新的事件标志
48+
---@param userdata? any 新的关联用户数据
49+
---@return boolean? # 成功返回true,失败返回nil
50+
---@return string? # 错误消息
51+
function epfd:event_mod(fd, events, userdata)
52+
end
53+
54+
---删除事件监听
55+
---@param fd bee.socket.fd|lightuserdata 文件描述符或套接字
56+
---@return boolean? # 成功返回true,失败返回nil
57+
---@return string? # 错误消息
58+
function epfd:event_del(fd)
59+
end
60+
61+
---创建Epoll实例
62+
---@param max_events integer 最大事件数量(必须大于0
63+
---@return bee.epoll.fd? # Epoll实例对象
64+
---@return string? # 错误消息
65+
function epoll.create(max_events)
66+
end
67+
68+
return epoll

0 commit comments

Comments
 (0)