Получить результат выполнения команды Perforce с использованием p4api - PullRequest
1 голос
/ 30 октября 2019

Я использую 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". Но у меня недостаточно репутации для созданияновый тег.)

1 Ответ

2 голосов
/ 30 октября 2019

Объект ClientUser получает выходные данные. Если вы запустите этот код из командной строки, вы увидите вывод p4 info, напечатанный методом OutputInfo().

Если вы хотите сделать что-то другое с выводом, подкласс ClientUser и реализуйте методы вывода, которые делают что-то еще.

https://www.perforce.com/manuals/v15.1/p4api/chapter.methods.html#clientuser.outputinfo

Есть много примеровоб этом в мастерской Perforce. https://swarm.workshop.perforce.com/files/guest/sam_stafford/deepannotate/DAUserFilelog.cpp

...