Back to home page

EIC code displayed by LXR

 
 

    


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

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 GAUDIKERNEL_IAIDATUPLESVC_H
0012 #define GAUDIKERNEL_IAIDATUPLESVC_H 1
0013 
0014 // Include files:
0015 #include "GaudiKernel/IDataProviderSvc.h"
0016 
0017 // Forward declarations:
0018 class DataObject;
0019 
0020 // Added to allow use of AIDA in applications
0021 // without prefix AIDA:: (as before):
0022 namespace AIDA {
0023   class ITuple;
0024   class IAnnotation;
0025 } // namespace AIDA
0026 
0027 using AIDA::IAnnotation;
0028 using AIDA::ITuple;
0029 
0030 /** @class IAIDATupleSvc IAIDATupleSvc.h GaudiKernel/IAIDATupleSvc.h
0031  *
0032  *  Definition of the IAIDATupleSvc interface class
0033  *
0034  *  @author Manuel Domenech Saavedra
0035  *  @date   2005-05-23
0036  */
0037 
0038 class GAUDI_API IAIDATupleSvc : virtual public IDataProviderSvc {
0039 
0040 public:
0041   /// InterfaceID
0042   DeclareInterfaceID( IAIDATupleSvc, 3, 0 );
0043 
0044   // ===================================
0045   // Book a tuple in the transient store
0046   // ===================================
0047   virtual AIDA::ITuple* book( const std::string& fullPath, const std::string& title, const std::string& columns ) = 0;
0048 
0049   // =======================================
0050   // Register a tuple in the transient store
0051   // =======================================
0052   using IDataProviderSvc::registerObject;
0053 
0054   virtual StatusCode registerObject( const std::string& dirPath, const std::string& objPath, AIDA::ITuple* tObj ) = 0;
0055 
0056   virtual StatusCode registerObject( DataObject* pParent, const std::string& objPath, AIDA::ITuple* tObj ) = 0;
0057 
0058   // =========================================
0059   // Unregister a tuple in the transient store
0060   // =========================================
0061   using IDataProviderSvc::unregisterObject;
0062 
0063   virtual StatusCode unregisterObject( AIDA::ITuple* tObj ) = 0;
0064 
0065   virtual StatusCode unregisterObject( AIDA::ITuple* tObj, const std::string& objectPath ) = 0;
0066 
0067   // ====================================
0068   // Retrieve a tuple from the data store
0069   // ====================================
0070   using IDataProviderSvc::retrieveObject;
0071 
0072   virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::ITuple*& tObj ) = 0;
0073 
0074   virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
0075                                      AIDA::ITuple*& tObj ) = 0;
0076 
0077   virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, AIDA::ITuple*& tObj ) = 0;
0078 
0079   // ==============================
0080   // Find a tuple in the data store
0081   // ==============================
0082   using IDataProviderSvc::findObject;
0083 
0084   virtual StatusCode findObject( const std::string& fullPath, AIDA::ITuple*& tObj ) = 0;
0085 
0086   virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::ITuple*& tObj ) = 0;
0087 
0088   virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath, AIDA::ITuple*& tObj ) = 0;
0089 
0090   virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::ITuple*& tObj ) = 0;
0091 
0092   /// Set criteria for reading, filtering the input
0093   virtual void setCriteria( AIDA::ITuple*& tObj, const std::string& criteria ) = 0;
0094 
0095   // ==============
0096   // Helper methods
0097   // ==============
0098 
0099   // Create all directories in a given full path
0100   virtual DataObject* createPath( const std::string& newPath ) = 0;
0101 
0102   // Create a sub-directory in a directory.
0103   virtual DataObject* createDirectory( const std::string& parentDir, const std::string& subDir ) = 0;
0104 
0105   virtual StatusCode myTest() = 0;
0106 };
0107 
0108 #endif // GAUDIKERNEL_IAIDATUPLESVC_H