C++ 客户端
自 4.8 版本起。
Watchman 包含一个 C++ 客户端库,以便于从 C++ 应用程序轻松访问 Watchman 数据。该库提供以下 API:
- 打开并维护与本地 Watchman 服务器的连接。
- 执行请求-响应 Watchman 命令。
- 订阅目录树中的更新。
安装
如果在构建 Watchman 时存在 Folly 库,则会自动构建和安装 C++ 客户端库。有关构建 Watchman 的详细信息,请参阅安装。
API
公共 Watchman C++ 客户端 API 完全包含在已安装的watchman/WatchmanClient.h
头文件中。 此标头包含用法概要和有关公共 API 功能的说明。
有关 API 用法的简单示例(向 Watchman 发送简单的请求-响应命令),请参见 Watchman 源代码树中的cppclient/CLI.cpp
。 有关 API 的更广泛示例,包括订阅的使用,请参见 Watchman 中的集成测试integration/cppclient.cpp
。
C++ 客户端库及其 API 大量使用了 Folly 库,因此强烈建议熟悉该库。 具体来说,客户端库广泛使用Folly 的异步功能来提供高性能异步 I/O,并使用Folly 的 dynamics来避免在 C++ 中构建/处理原始 JSON。
在应用程序的构建中使用 C++ 客户端
为了便于集成到应用程序的构建中,Watchman C++ 客户端库提供了对pkg-config的支持。
例如,如果您的应用程序完全包含在一个名为app.cpp
的 C++ 文件中,则以下内容足以在具有 GNU Make 的系统上进行构建
$ make LDFLAGS=$(pkg-config watchmanclient --libs) CPPFLAGS=$(pkg-config watchmanclient --cflags) app
如果 Watchman 安装在pkg-config
默认不搜索软件包的位置,则可能需要修改PKG_CONFIG_PATH
环境变量。 例如
$ export PKG_CONFIG_PATH=<watchman path>/lib/pkgconfig:$PKG_CONFIG_PATH