XS_RunState(运行状态)
| 值 | 名称 | 含义 |
|---|---|---|
| 0 | XS_RUN_STARTING | 装配中 |
| 1 | XS_RUN_RUNNING | 对外服务 |
| 2 | XS_RUN_RELOAD_FAILED | 上次重载失败,旧代继续服务 |
| 3 | XS_RUN_STOPPING | 正在排空 |
| 4 | XS_RUN_STOPPED | 已停止 |
挂在 XS_ServerInfo.State 与 XS_HostInfo.State 上;读它做巡检展示是安全的(枚举值读取无借用问题)。
XS_ReloadState(重载七态)
ACCEPTED ──▶ PREPARING ──▶ SUCCEEDED
(受理) (编译中) (成功)
├──▶ FAILED 编译/校验失败,旧代原样服务
├──▶ SUPERSEDED 被同 server 更新意图覆盖
└──▶ CANCELLED 提交前被取消
| 值 | 名称 | 含义 |
|---|---|---|
| 0 | XS_RELOAD_UNKNOWN | 初始 / 查询不到 |
| 1 | XS_RELOAD_ACCEPTED | 意图受理(返回了稳定 ID) |
| 2 | XS_RELOAD_PREPARING | 快照与候选编译中 |
| 3 | XS_RELOAD_SUCCEEDED | 新代已发布 |
| 4 | XS_RELOAD_FAILED | 失败;Message 含原因 |
| 5 | XS_RELOAD_SUPERSEDED | 被最新意图覆盖(latest-wins) |
| 6 | XS_RELOAD_CANCELLED | 进入副作用区前取消 |
XS_RequestResult(请求三态)
| 值 | 名称 | 语义 |
|---|---|---|
| 0 | XS_OK | 已写出完整响应;驱动消费 body 余量后继续 keep-alive |
| 1 | XS_FALLBACK | 未处理:GET/HEAD 落入静态层,其余 404 |
| 2 | XS_TAKEOVER | 应用接管连接:pull/Future 自行收发并最终 Close |
XHTTP_METHOD_*(HTTP 方法位掩码)
常用方法使用互不重叠的单 bit;非零值既是一个解析后的方法,也可作为方法集合中的原子位。组合宏提供常用路由集合。
| 值 | 名称 | 说明 |
|---|---|---|
| 0x00000000 | XHTTP_METHOD_INVALID | 空值或非法 token;集合中自然不匹配任何方法 |
| 0x00000001 | XHTTP_METHOD_OTHER | 语法合法但未内置分类的方法(扩展方法) |
| 0x00000002 | XHTTP_METHOD_GET | GET |
| 0x00000004 | XHTTP_METHOD_HEAD | HEAD |
| 0x00000008 | XHTTP_METHOD_POST | POST |
| 0x00000010 | XHTTP_METHOD_PUT | PUT |
| 0x00000020 | XHTTP_METHOD_DELETE | DELETE |
| 0x00000040 | XHTTP_METHOD_CONNECT | CONNECT |
| 0x00000080 | XHTTP_METHOD_OPTIONS | OPTIONS |
| 0x00000100 | XHTTP_METHOD_TRACE | TRACE |
| 0x00000200 | XHTTP_METHOD_PATCH | PATCH |
组合宏
/* 常用 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 章实测过的行为。