4 组枚举 · 值核对自 xsbase.h 与 xrt_decl.h

枚举参考

运行状态、重载七态、请求三态与 HTTP 方法位掩码。方法掩码既是单方法解析结果,也是路由注册的方法集合。

XS_RunState(运行状态)

值名称含义
0XS_RUN_STARTING装配中
1XS_RUN_RUNNING对外服务
2XS_RUN_RELOAD_FAILED上次重载失败,旧代继续服务
3XS_RUN_STOPPING正在排空
4XS_RUN_STOPPED已停止

挂在 XS_ServerInfo.State 与 XS_HostInfo.State 上;读它做巡检展示是安全的(枚举值读取无借用问题)。

XS_ReloadState(重载七态)

ACCEPTED ──▶ PREPARING ──▶ SUCCEEDED (受理) (编译中) (成功) ├──▶ FAILED 编译/校验失败,旧代原样服务 ├──▶ SUPERSEDED 被同 server 更新意图覆盖 └──▶ CANCELLED 提交前被取消
值名称含义
0XS_RELOAD_UNKNOWN初始 / 查询不到
1XS_RELOAD_ACCEPTED意图受理(返回了稳定 ID)
2XS_RELOAD_PREPARING快照与候选编译中
3XS_RELOAD_SUCCEEDED新代已发布
4XS_RELOAD_FAILED失败;Message 含原因
5XS_RELOAD_SUPERSEDED被最新意图覆盖(latest-wins)
6XS_RELOAD_CANCELLED进入副作用区前取消

XS_RequestResult(请求三态)

值名称语义
0XS_OK已写出完整响应;驱动消费 body 余量后继续 keep-alive
1XS_FALLBACK未处理:GET/HEAD 落入静态层,其余 404
2XS_TAKEOVER应用接管连接:pull/Future 自行收发并最终 Close

XHTTP_METHOD_*(HTTP 方法位掩码)

常用方法使用互不重叠的单 bit;非零值既是一个解析后的方法,也可作为方法集合中的原子位。组合宏提供常用路由集合。

值名称说明
0x00000000XHTTP_METHOD_INVALID空值或非法 token;集合中自然不匹配任何方法
0x00000001XHTTP_METHOD_OTHER语法合法但未内置分类的方法(扩展方法)
0x00000002XHTTP_METHOD_GETGET
0x00000004XHTTP_METHOD_HEADHEAD
0x00000008XHTTP_METHOD_POSTPOST
0x00000010XHTTP_METHOD_PUTPUT
0x00000020XHTTP_METHOD_DELETEDELETE
0x00000040XHTTP_METHOD_CONNECTCONNECT
0x00000080XHTTP_METHOD_OPTIONSOPTIONS
0x00000100XHTTP_METHOD_TRACETRACE
0x00000200XHTTP_METHOD_PATCHPATCH

组合宏

/* 常用 CRUD 路由方法集合;PUT 与 PATCH 都属于更新方法 */ #define XHTTP_METHOD_CRUD ( GET | POST | PUT | PATCH | DELETE ) /* 匹配任一内置方法或语法合法的扩展方法 */ #define XHTTP_METHOD_ANY ( OTHER | GET | HEAD | POST | PUT | DELETE | CONNECT | OPTIONS | TRACE | PATCH )
注意 CRUD 不含 HEAD(HEAD 只读元数据,语义同 GET);ANY 含 OTHER——覆盖扩展方法。路由只注册 GET 时,HEAD 请求会在方法槽被拒(405 + Allow: GET),这是第 2 章实测过的行为。