Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 10:28:20

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-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 "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 //------------------------------------------------------------------------------
0012 // Definition of class :  RootDirectoryCnv
0013 //--------------------------------------------------------------------
0014 //
0015 //  Package    : DbCnv/NTuples ( The LHCb Offline System)
0016 //  Author     : M.Frank
0017 //
0018 //------------------------------------------------------------------------------
0019 #ifndef POOLDB_POOLDBDIRECTORYCNV_H
0020 #define POOLDB_POOLDBDIRECTORYCNV_H 1
0021 
0022 // Include files
0023 #include <RootCnv/RootStatCnv.h>
0024 
0025 /*
0026  *  Gaudi namespace declaration
0027  */
0028 namespace Gaudi {
0029 
0030   /** @class RootDirectoryCnv RootDirectoryCnv.h src/RootDirectoryCnv.h
0031    *
0032    * Description:
0033    * NTuple directory converter class definition
0034    * Definition of the converter to manage the
0035    * directories in an database representing N-Tuples.
0036    *
0037    * @author  M.Frank
0038    * @version 1.0
0039    */
0040   class GAUDI_API RootDirectoryCnv : public RootStatCnv {
0041   public:
0042     /** Initializing Constructor
0043      * @param      typ      [IN]     Concrete storage type of the converter
0044      * @param      clid     [IN]     Class identifier of the object
0045      * @param      svc      [IN]     Pointer to service locator object
0046      *
0047      * @return Reference to RootBaseCnv object
0048      */
0049     RootDirectoryCnv( long typ, const CLID& clid, ISvcLocator* svc, RootCnvSvc* mgr );
0050 
0051     /** Converter overrides: Create transient object from persistent data
0052      *
0053      * @param    pAddr       [IN]   Pointer to object address.
0054      * @param    refpObj     [OUT]  Location to pointer to store data object
0055      *
0056      * @return Status code indicating success or failure.
0057      */
0058     StatusCode createObj( IOpaqueAddress* pAddr, DataObject*& refpObj ) override;
0059 
0060     /** Converter overrides: Resolve the references of the transient object.
0061      *
0062      * @param    pAddr       [IN]   Pointer to object address.
0063      * @param    pObj        [IN]   Pointer to data object
0064      *
0065      * @return Status code indicating success or failure.
0066      */
0067     StatusCode fillObjRefs( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0068 
0069     /** Converter overrides: Update transient object from persistent data
0070      *
0071      * @param    pAddr       [IN]   Pointer to object address.
0072      * @param    pObj        [IN]   Pointer to data object
0073      *
0074      * @return Status code indicating success or failure.
0075      */
0076     StatusCode updateObj( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0077 
0078     /** Converter overrides: Update the references of
0079      * an updated transient object.
0080      *
0081      * @param    pAddr       [IN]   Pointer to object address.
0082      * @param    pObj        [IN]   Pointer to data object
0083      *
0084      * @return Status code indicating success or failure.
0085      */
0086     StatusCode updateObjRefs( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0087 
0088     /** Converter overrides: Convert the transient object to the
0089      * requested representation.
0090      *
0091      * @param    pObj        [IN]   Pointer to data object
0092      * @param    refpAddr    [OUT]  Location to store pointer to object address.
0093      *
0094      * @return Status code indicating success or failure.
0095      */
0096     StatusCode createRep( DataObject* pObj, IOpaqueAddress*& refpAddr ) override;
0097 
0098     /** Converter overrides: Fill references of persistent object representation.
0099      *
0100      * @param    pObj        [IN]   Pointer to data object
0101      * @param    refpAddr    [OUT]  Location to store pointer to object address.
0102      *
0103      * @return Status code indicating success or failure.
0104      */
0105     StatusCode fillRepRefs( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0106 
0107     /** Converter overrides: Update persistent object representation.
0108      *
0109      * @param    pObj        [IN]   Pointer to data object
0110      * @param    refpAddr    [OUT]  Location to store pointer to object address.
0111      *
0112      * @return Status code indicating success or failure.
0113      */
0114     StatusCode updateRep( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0115 
0116     /** Converter overrides: Update references of persistent object representation.
0117      *
0118      * @param    pObj        [IN]   Pointer to data object
0119      * @param    refpAddr    [OUT]  Location to store pointer to object address.
0120      *
0121      * @return Status code indicating success or failure.
0122      */
0123     StatusCode updateRepRefs( IOpaqueAddress* pAddr, DataObject* pObj ) override;
0124   };
0125 } // namespace Gaudi
0126 #endif // POOLDB_POOLDBDIRECTORYCNV_H