模块
mesos模块提供了扩展mesos的方法,使用模块可避免重新编译mesos,模块是可加载的共享库。
激活模块
有两种方法定义需要加载的模块列表:
- --modules=filepath定义了文件路径,文件中包含了JSON格式定义的模块列表
- --modules="{...}"直接使用JSON格式定义模块列表
--modules_dir=dirpath定义了在哪里找到模块
ModuleManager::initialize()
- 68-81:将模块名与版本对应关系记录在kindToVersion映射表中
ModuleManager::load
- 358-365:加载模块目录,将目录下的文件排序
- 366:对模块目录下的每个文件:
- 367-375:得到文件内容
- 377-382:解析模块?调用了flags::parse,解析JSON格式
- 384-388:调用loadManifest加载模块
ModuleManager::loadManifest
ModuleManager::create
定义在src/module/manager.hpp,主要动作是调用模块中定义的create函数