One of the key components of the XRootD software framework is the C++ implementation of the XRootD client. As the foundation of client binaries, XRootD Posix API and the Python API, it is widely used in LHC experiments’ frameworks as well as on server side in the XCache and EOS. In order to facilitate new developments the XRootD client API has been extended to be in line with modern C++ programming practices.
In this contribution we report on the new XRootD client declarative API inspired by C++ ranges v3. The new utility offers superior composability of asynchronous operations through operation pipelining, and support for standard callbacks (lambdas, std::futures). As a case study we consider the EOS erasure coding plug-in.
|Consider for promotion||No|