Developer Notes for P4API, the Helix Application Programming Interface for C/C++ P4, the Helix Command line client P4P, the Helix Proxy P4Broker, the Helix Broker Version 2017.2 Introduction This document is contains developer notes for: * Helix C/C++ API and other derived APIs and * Helix Client (P4) * Helix Proxy (P4P) and * Helix Broker (P4Broker) For details about installing and using the Helix C/C++ API, refer to the API User's Guide, posted on the Perforce Web site at: http://www.perforce.com/perforce/technical.html Supported Platforms for p4api Linux kernel 2.6+ for Intel(x86,x86_64) Windows for Intel(ntx86, ntx64) Mac OS X 10.5, 10.6, 10.7, 10.8, 10.9, 10.10(x86, x86_64) Apple Darwin 9.0 for Intel(x86,x86_64) SSL Support Beginning with the 2017.1 release of the Helix C/C++ API, the dependency on OpenSSL is now enforced and the SSL stub library has been removed. Executables linked against the P4API libraries must also be linked against real OpenSSL libraries: the latest 1.0.2 patch is recommended. ------------------------------------------------------------------------- See marks in the notes below: * -- requires new p4 client program including all client applications and derived APIs ** -- requires new p4d server program *** -- requires new p4p proxy program **** -- requires new p4broker program ------------------------------------------------------------------------- Minor new functionality in 2017.2 #1557881 The Error::CheckIdi() and Error::CheckIds() methods have been added. These methods can be used to check for a particular code in error items other than the first. #1521323 * ** Two new ClientUser::Prompt() methods now have been added to support prompt messages being sent as Error objects. These will allow applications to identify the prompt by message code rather than needing to perform string comparisons. When overloading these methods, it is recommended to call the string handling equivalent method so that any existing overloaded logic can be reused: calling the wrong Prompt method could skip overloaded prompt methods and revert to the default stdio based prompt logic in ClientUser. #1520950 ** The 'p4 login' command now reports tagged output on success. If your application relies on the previous output either continue to use the 2017.1 (or older) client API, or set the protocol variable "api" to 81 (2017.1). For the command line 'p4' executable, reverting to the previous output can be achieved by using the -Zapi=81 global argument. Bugs fixed in 2017.2 Patch 4 #1646839 (Bug #94877) *** Additional logging is now reported by the proxy when track=1 is set. The new proxytotals line records the number of files and the total file size (in MB) transferred to the client from the upstream server and from the proxy's cache. Bugs fixed in 2017.2 #1568065 ** 'p4 client -o' did not generate Backup or Type fields in tagged output if the fields were set to their default values. Also, tagged output for 'p4 clients' did not output the Backup field. Now these tagged fields are always generated for these cases.