Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-26 09:01:11

0001 /***********************************************************************************\
0002 * (c) Copyright 2024 CERN for the benefit of the LHCb and ATLAS collaborations      *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "COPYING".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #pragma once
0012 
0013 #include <GaudiKernel/IInterface.h>
0014 #include <memory>
0015 #include <string>
0016 
0017 class TFile;
0018 
0019 namespace Gaudi {
0020   namespace Interfaces {
0021     /** Interface for a component that manages file access within Gaudi applications.
0022      *
0023      * This service allows algorithms to access ROOT files via a centralized service,
0024      * ensuring that files are shared appropriately and not unintentionally overwritten
0025      * or duplicated.
0026      */
0027     struct IFileSvc : virtual IInterface {
0028       // InterfaceID declaration.
0029       DeclareInterfaceID( IFileSvc, 1, 0 );
0030 
0031       // Get an shared pointer to a TFile based on an identifier
0032       virtual std::shared_ptr<TFile> getFile( const std::string& identifier ) = 0;
0033     };
0034   } // namespace Interfaces
0035 } // namespace Gaudi