架构总览

llbc 是一个跨平台的 C++17 服务端框架,围绕 Service + Component 模型组织游戏 / 服务器逻辑。 本页介绍框架的模块划分、统一初始化流程,以及 App → Service → Component 的整体运行模型。

五大模块

C++ 核心库位于 llbc/,按职责拆分为五个模块,每个模块都有独立子目录与一个 Module.h 伞头文件:

llbc 五大模块与依赖关系

模块 路径 职责
common llbc/include/llbc/common/ 平台 / 编译器抽象、错误码、基础类型(LLBC_String、LLBC_Stream)、__LLBC_NS_BEGIN/END 等宏
core llbc/include/llbc/core/ 网络之外的一切:线程、定时器、日志、对象池、LLBC_Variant、文件 / 目录、配置(ini/xml/properties)、事件管理、rapidjson、tinyxml2、编码转换
comm llbc/include/llbc/comm/ Service / Component / Session / Packet 网络层,可插拔 poller 后端,协议栈
testcase llbc/include/llbc/testcase/ 供 tests/ 交互式项目使用的极小基类
app llbc/include/llbc/app/ LLBC_App 生命周期(启动、reload、停止),编排多个 Service

一个头文件引入全部

llbc.h(位于 llbc/include/llbc.h)按 依赖顺序 包含五大模块:

#include "llbc/common/Common.h"        // common
#include "llbc/core/Core.h"            // core
#include "llbc/comm/Comm.h"            // comm
#include "llbc/testcase/BaseTestCase.h"// testcase
#include "llbc/app/App.h"              // app

即 common → core → comm → testcase → app。业务代码只需 #include "llbc.h" 一行即可获得整个框架。

统一初始化:Startup / Cleanup

每个模块都暴露内部的 __LLBC_<Module>Startup() / __LLBC_<Module>Cleanup()。 llbc.cpp 中的 LLBC_Startup() / LLBC_Cleanup() 会按依赖顺序依次调用它们:

#include "llbc.h"
using namespace llbc;

int main()
{
    LLBC_Startup();                 // 按 common→core→comm→testcase→app 顺序初始化
    LLBC_Defer(LLBC_Cleanup());     // 作用域退出时逆序清理

    // ... 业务代码 ...
    return 0;
}

务必成对调用 LLBC_Startup() 与 LLBC_Cleanup(),且置于进程边界。 绝大多数公共 API 都假设库已初始化——未初始化即调用属于未定义行为。 详见 Hello World。

App → Service → Component

框架的运行模型是三层组合:

App 不是必需的:可以只用 LLBC_Service::Create(...) 独立创建并驱动一个 Service。详见 Service 与 Component 与 第一个 Service。

关键约定(速览)

下一步