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.1 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 ------------------------------------------------------------------------- Major new functionality in 2017.1 #1478710 * ** The client must set the 'enableGraph' protocol to indicate that it supports the additional output formats reported by the graph data model. #1454418 * The KeepAlive class which works with the Client::SetBreak method can now specify a polling interval time in milliseconds #1434004 * ** TCP protocol changes to improve performance of long latency connections. Significantly more data may be transported to or from servers and timely processing of results by clients is important. Bugs fixed in 2017.1 #1483947 (Bug #89040) * P4CLIENTPATH and the dvcs related P4INITROOT no longer restrict files from being written into the system temporary directory or the directory given by TEMP or TMP. To support this, there is a new Client::GetTempPath call.