c++ - 使用 p4api 获取 Perforce 命令运行的输出
问题描述
我正在使用 Perforce(又名 Helix Core、C++ API)以编程方式运行 Perforce 命令。到目前为止,我发现的所有示例都很简短,并展示了如何建立与服务器的连接并运行命令。但是……然后呢?如何访问该命令的输出?
一个简单的例子:
#include <p4/clientapi.h>
// Connect to server.
ClientApi client;
client.SetProtocol( "tag", "" );
client.Init( &e );
if ( e.Test() )
{
e.Fmt( &msg );
fprintf( stderr, "%s\n", msg.Text() );
return;
}
// Run the command.
ClientUser cu;
client.Run( "info", &cu );
// Access the output.
ummm... ?
(这个问题值得一个“p4api”标签。但是,我没有足够的声誉来创建一个新标签。)
解决方案
ClientUser
对象接收输出。如果您从命令行运行此代码,您将看到该方法p4 info
正在打印输出OutputInfo()
。
如果您想对输出做一些不同的事情,请子类化ClientUser
并实现做其他事情的输出方法。
https://www.perforce.com/manuals/v15.1/p4api/chapter.methods.html#clientuser.outputinfo
在 Perforce Workshop 中有很多这样的例子。 https://swarm.workshop.perforce.com/files/guest/sam_stafford/deepannotate/DAUserFilelog.cpp
推荐阅读
- python - 如何装饰属性以测量其执行时间?
- gitlab - gitlab socket connect:连接被拒绝
- arrays - 在数组对象中搜索特定字段并将其放入另一个数组中,以便以角度显示表格
- php - 如何在 Laravel Jetstream 中设置用户当前团队
- python - 如何修复 django 项目中的导入错误?
- android - EditText getText().toString() 未显示全文 Android
- operating-system - 如何找到物理地址和虚拟地址的位?
- mysql - 了解 rows_examined_per_scan 和 rows_produced_per_join
- parameters - 通配符作为snakemake中的参数?
- javascript - 由于数据库查询延迟了其余的 JS 代码