Skip to content

Data handle rework

WARNING: This MR is currently rebased on top of !769 (merged)

This long-awaited MR proposes to completely rewrite the DataHandle infrastructure as outlined during previous Gaudi workshops. Old DataHandles are, for now, still available for backward compatibility.


Here's what I think must be resolved before this can be merged in:

  • Decide customization perimeter and final design of IDataHandleMetadata.
  • Implement any missing features needed for ATLAS migration.
  • Understand LHCb test failures.

And here's what I think is not a blocker for this first MR, but should be eventually integrated before we can consider this a complete implementation:

  • Add a type-erased ContainerHandle which can tell the size of a container without knowing its type (see hgraslan/Gaudi!1 (comment 392769) )
  • Integrate Range-v3 support (which is currently sketched, but not implemented), and test it.
  • Optimize Whiteboard manipulation by restricting what unchecked non-DataHandle code is allowed to do with it.
  • Integrate conditions support (this would take the form of a new subclass of DataHandle alongside EventDataHandle, see https://gitlab.cern.ch/hgraslan/conditions-prototype for the kind of handle/whiteboard design I have in mind).
  • Add and integrate a reentrant Whiteboard interface.
  • Use reentrant Algorithm interface once it becomes available.
  • Migrate existing Gaudi and Gaudi-based code to new DataHandles.
  • Drop the old DataHandle code once migration is complete.

If you think anything is missing from these lists, please add a discussion to the diff or comments!

Edited by Hadrien Benjamin Grasland

Merge request reports