使用 p4api 获取 Perforce 命令 运行 的输出
Get output of Perforce command run using p4api
我正在使用 Perforce,a.k.a。 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
我正在使用 Perforce,a.k.a。 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