Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:32

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 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 "LICENSE".                                            *
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 #ifndef KERNEL_IPERSISTENCYSVC_H
0012 #define KERNEL_IPERSISTENCYSVC_H
0013 
0014 // Include files
0015 #include "GaudiKernel/IInterface.h"
0016 #include "GaudiKernel/Kernel.h"
0017 
0018 // Forward declarations
0019 // Generic interface to data object class
0020 class IConversionSvc;
0021 
0022 /** @class IPersistencySvc IPersistencySvc.h GaudiKernel/IPersistencySvc.h
0023 
0024     Data persistency service interface.
0025 
0026     @author Markus Frank
0027     @version 1.0
0028 */
0029 class GAUDI_API IPersistencySvc : virtual public IInterface {
0030 public:
0031   /// InterfaceID
0032   DeclareInterfaceID( IPersistencySvc, 2, 0 );
0033 
0034   /** Set default service type.
0035       @return     Status code indicating success or failure.
0036       @param      type Storage technology type.
0037   */
0038   virtual StatusCode setDefaultCnvService( long type ) = 0;
0039 
0040   /** Add new Conversion Service.
0041       @return     Status code indicating success or failure.
0042       @param      service Pointer to conversion service interface.
0043   */
0044   virtual StatusCode addCnvService( IConversionSvc* service ) = 0;
0045 
0046   /** Remove Conversion Service.
0047       @return     Status code indicating success or failure.
0048       @param      type Storage technology type.
0049   */
0050   virtual StatusCode removeCnvService( long type ) = 0;
0051 
0052   /** Retrieve conversion service identified by technology
0053       @return     Status code indicating success or failure.
0054       @param      service_type Storage technology type.
0055       @param      refpSvc      Reference to pointer to interface of required service.
0056   */
0057   virtual StatusCode getService( long service_type, IConversionSvc*& refpSvc ) = 0;
0058   /** Retrieve conversion service identified by technology
0059       @return     Status code indicating success or failure.
0060       @param      service_type Storage technology type (ROOT, MS Access, ....)
0061       @param      refpSvc      Reference to pointer to interface of required service.
0062   */
0063   virtual StatusCode getService( const std::string& service_type, IConversionSvc*& refpSvc ) = 0;
0064 };
0065 
0066 #endif // KERNELGAUDI_IPERSISTENCYSVC_H