ATLAS Offline Software
Loading...
Searching...
No Matches
PathResolver.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PATHRESOLVER_PATHRESOLVER_H
6#define PATHRESOLVER_PATHRESOLVER_H
7
9
10#include <filesystem>
11#include <string>
12#include <atomic>
13
14
16public:
17
18 PathResolver() = default; // need a constructor to link the dictionary library with the implementation library
19
26 static std::string find_file (const std::string& logical_file_name,
27 const std::string& search_path);
28
35 static std::string find_file_from_list (const std::string& logical_file_name,
36 const std::string& search_list);
37
44 static std::string find_directory (const std::string& logical_file_name,
45 const std::string& search_path);
46
53 static std::string find_directory_from_list (const std::string& logical_file_name,
54 const std::string& search_list);
55
56
57 static std::string find_calib_file(const std::string& logical_file_name);
58 static std::string find_calib_directory(const std::string& logical_file_name);
59
60 static void setOutputLevel(MSG::Level level);
61 static void SetOutputLevel(int lvl) { setOutputLevel(MSG::Level(lvl)); }
62
63 static std::string FindCalibFile(const std::string& logical_file_name) { return find_calib_file(logical_file_name); }
64 static std::string FindCalibDirectory(const std::string& logical_file_name) { return find_calib_directory(logical_file_name); }
65
66private:
67
68 static bool PR_find( const std::string& logical_file_name, const std::string& search_list,
69 std::filesystem::file_type file_type, std::string& result );
70
71 inline static std::atomic<MSG::Level> m_level{MSG::NIL};
72 static bool msgLvl( const MSG::Level lvl ) { return asgMsg().msgLvl(lvl); }
73 static MsgStream& msg() { return asgMsg().msg(); }
74 static MsgStream& msg( const MSG::Level lvl ) { return asgMsg().msg(lvl); }
75 static asg::AsgMessaging& asgMsg();
76};
77
78
79std::string PathResolverFindXMLFile (const std::string& logical_file_name);
80std::string PathResolverFindDataFile (const std::string& logical_file_name);
81std::string PathResolverFindCalibFile (const std::string& logical_file_name);
82std::string PathResolverFindCalibDirectory (const std::string& logical_file_name);
83void PathResolverSetOutputLevel(int lvl);
84
85#endif
std::string PathResolverFindXMLFile(const std::string &logical_file_name)
std::string PathResolverFindCalibDirectory(const std::string &logical_file_name)
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
std::string PathResolverFindDataFile(const std::string &logical_file_name)
void PathResolverSetOutputLevel(int lvl)
static std::string find_directory_from_list(const std::string &logical_file_name, const std::string &search_list)
static void SetOutputLevel(int lvl)
static MsgStream & msg(const MSG::Level lvl)
static void setOutputLevel(MSG::Level level)
static bool msgLvl(const MSG::Level lvl)
static bool PR_find(const std::string &logical_file_name, const std::string &search_list, std::filesystem::file_type file_type, std::string &result)
Main private search method used by all public methods.
static std::atomic< MSG::Level > m_level
static std::string find_calib_file(const std::string &logical_file_name)
static std::string FindCalibFile(const std::string &logical_file_name)
static std::string find_directory(const std::string &logical_file_name, const std::string &search_path)
PathResolver()=default
static std::string find_file(const std::string &logical_file_name, const std::string &search_path)
static MsgStream & msg()
static std::string find_file_from_list(const std::string &logical_file_name, const std::string &search_list)
static std::string find_calib_directory(const std::string &logical_file_name)
static asg::AsgMessaging & asgMsg()
static std::string FindCalibDirectory(const std::string &logical_file_name)
Class mimicking the AthMessaging class from the offline software.
MsgStream & msg() const
The standard message stream.
bool msgLvl(const MSG::Level lvl) const
Test the output level of the object.