The Gaudi Framework  v40r0 (475e45c1)
IFileCatalog.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <Gaudi/PluginService.h>
14 #include <GaudiKernel/IInterface.h>
15 #include <string>
16 #include <utility>
17 #include <vector>
18 
19 class IMessageSvc;
20 
21 /*
22  * Gaudi namespace declaration
23  */
24 namespace Gaudi {
25 
35  class GAUDI_API IFileCatalog : virtual public IInterface {
36 
37  public:
40 
41  using Factory = Gaudi::PluginService::Factory<IInterface*( const std::string&, IMessageSvc* )>;
42 
44  typedef std::pair<std::string, std::string> NamedItem;
45  typedef std::vector<NamedItem> Attributes;
46  typedef std::vector<NamedItem> Files;
47  typedef std::vector<std::string> Strings;
48 
50  virtual std::string createFID() const = 0;
53  virtual const std::string& connectInfo() const = 0;
55  virtual void init() = 0;
57  virtual void commit() = 0;
59  virtual void rollback() = 0;
61  virtual bool readOnly() const = 0;
63  virtual bool dirty() const = 0;
65  virtual void getPFN( const std::string& fid, Files& files ) const = 0;
67  virtual void getLFN( const std::string& fid, Files& files ) const = 0;
69  virtual void getFID( Strings& fids ) const = 0;
71  virtual bool existsPFN( const std::string& pfn ) const = 0;
73  virtual std::string lookupPFN( const std::string& lfn ) const = 0;
75  virtual bool existsLFN( const std::string& lfn ) const = 0;
77  virtual std::string lookupLFN( const std::string& lfn ) const = 0;
79  virtual bool existsFID( const std::string& fid ) const = 0;
81  virtual void deleteFID( const std::string& FileID ) const = 0;
83  virtual void registerPFN( const std::string& fid, const std::string& pfn, const std::string& ftype ) const = 0;
85  virtual void registerLFN( const std::string& fid, const std::string& lfn ) const = 0;
87  virtual void registerFID( const std::string& fid ) const = 0;
89  virtual void renamePFN( const std::string& pfn, const std::string& new_pfn ) const = 0;
91  virtual void deletePFN( const std::string& pfn ) const = 0;
93  virtual void getMetaData( const std::string& fid, Attributes& attr ) const = 0;
95  virtual std::string getMetaDataItem( const std::string& fid, const std::string& name ) const = 0;
97  virtual void setMetaData( const std::string& fid, const std::string& name, const std::string& value ) const = 0;
99  virtual void dropMetaData( const std::string& fid ) const = 0;
101  virtual void dropMetaData( const std::string& fid, const std::string& attr ) const = 0;
102  };
103 } /* End namespace Gaudi */
Gaudi::IFileCatalog::rollback
virtual void rollback()=0
Save catalog to file.
Gaudi::IFileCatalog::connectInfo
virtual const std::string & connectInfo() const =0
Access to connect string.
IMessageSvc
Definition: IMessageSvc.h:44
Gaudi::IFileCatalog::readOnly
virtual bool readOnly() const =0
Check if the catalog is read-only.
Gaudi::IFileCatalog::lookupPFN
virtual std::string lookupPFN(const std::string &lfn) const =0
Lookup file identifier by physical file name.
Gaudi::IFileCatalog
Definition: IFileCatalog.h:35
Gaudi::IFileCatalog::commit
virtual void commit()=0
Save catalog to file.
Gaudi::IFileCatalog::renamePFN
virtual void renamePFN(const std::string &pfn, const std::string &new_pfn) const =0
rename a PFN
Gaudi::IFileCatalog::dirty
virtual bool dirty() const =0
Check if the catalog should be updated.
Gaudi::IFileCatalog::Strings
std::vector< std::string > Strings
Definition: IFileCatalog.h:47
Gaudi::IFileCatalog::registerLFN
virtual void registerLFN(const std::string &fid, const std::string &lfn) const =0
Create a Node for a FileID and DOM Node of the LFN with all the attributes.
Gaudi::IFileCatalog::DeclareInterfaceID
DeclareInterfaceID(IFileCatalog, 2, 0)
InterfaceID.
Gaudi::IFileCatalog::Factory
Gaudi::PluginService::Factory< IInterface *(const std::string &, IMessageSvc *)> Factory
Definition: IFileCatalog.h:41
Gaudi::IFileCatalog::existsPFN
virtual bool existsPFN(const std::string &pfn) const =0
Return the status of a PFName.
PluginService.h
Gaudi::IFileCatalog::lookupLFN
virtual std::string lookupLFN(const std::string &lfn) const =0
Lookup file identifier by physical file name.
Gaudi::IFileCatalog::registerFID
virtual void registerFID(const std::string &fid) const =0
Create a Node for a FileID and DOM Node.
IInterface.h
Gaudi::IFileCatalog::dropMetaData
virtual void dropMetaData(const std::string &fid) const =0
Drop all metadata of one FID.
Gaudi::IFileCatalog::Files
std::vector< NamedItem > Files
Definition: IFileCatalog.h:46
Gaudi::IFileCatalog::existsLFN
virtual bool existsLFN(const std::string &lfn) const =0
Return the status of a LFName.
Gaudi::IFileCatalog::getLFN
virtual void getLFN(const std::string &fid, Files &files) const =0
Dump all LFNames of the catalog associate to the FileID.
Gaudi::IFileCatalog::registerPFN
virtual void registerPFN(const std::string &fid, const std::string &pfn, const std::string &ftype) const =0
Create a Node for a FileID and DOM Node of the PFN with all the attributes.
Gaudi
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition: __init__.py:1
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
Gaudi::IFileCatalog::setMetaData
virtual void setMetaData(const std::string &fid, const std::string &name, const std::string &value) const =0
Insert/update metadata item.
Gaudi::IFileCatalog::getMetaData
virtual void getMetaData(const std::string &fid, Attributes &attr) const =0
Dump all MetaData of the catalog for a given file ID.
Gaudi::IFileCatalog::getPFN
virtual void getPFN(const std::string &fid, Files &files) const =0
Dump all PFNames of the catalog and their attributes associate to the FileID.
IInterface
Definition: IInterface.h:225
Gaudi::IFileCatalog::init
virtual void init()=0
Parse the DOM tree of the XML catalog.
Gaudi::IFileCatalog::NamedItem
std::pair< std::string, std::string > NamedItem
Public type definitions.
Definition: IFileCatalog.h:44
Gaudi::IFileCatalog::dropMetaData
virtual void dropMetaData(const std::string &fid, const std::string &attr) const =0
Drop specified metadata item.
Gaudi::IFileCatalog::getFID
virtual void getFID(Strings &fids) const =0
Dump all file Identifiers.
Gaudi::IFileCatalog::getMetaDataItem
virtual std::string getMetaDataItem(const std::string &fid, const std::string &name) const =0
Access metadata item.
Gaudi::IFileCatalog::deleteFID
virtual void deleteFID(const std::string &FileID) const =0
Delete FileID Node from the catalog.
Gaudi::IFileCatalog::deletePFN
virtual void deletePFN(const std::string &pfn) const =0
remove a PFN
Gaudi::IFileCatalog::existsFID
virtual bool existsFID(const std::string &fid) const =0
Return the status of a FileID.
Gaudi::IFileCatalog::Attributes
std::vector< NamedItem > Attributes
Definition: IFileCatalog.h:45
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:83