Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v38r0 (2143aa4c)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DirSearchPath.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 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 #ifndef JOBOPTIONS_DIRSEARCHPATH_H
12 #define JOBOPTIONS_DIRSEARCHPATH_H
13 
17 #include "GaudiKernel/Kernel.h" /* GAUDI_API */
18 #include "boost/filesystem/exception.hpp" /*filesystem_error*/
19 #include "boost/filesystem/path.hpp"
20 #include <functional> /* binary_function */
21 #include <string>
22 #include <vector>
28 public:
30 
32 
33  DirSearchPath() { addCWD(); }
35 #ifdef _WIN32
36  DirSearchPath( const std::string& stringifiedPath, const char* separator = ",;" );
37 #else
38  DirSearchPath( const std::string& stringifiedPath, const char* separator = ",:" );
39 #endif
40 
41 
43 
44  // bool add(const std::string& dirName); ///< \throws filesystem_error
45  bool add( const path& dir );
46  bool addCWD();
47 
48 
50 
51  bool find( const std::string& fileName, std::string& fullFileName ) const;
55  bool find( const path& file, path& fileFound ) const;
57  std::list<path> find_all( const path& file ) const;
59 
61 
62  static bool existsDir( const std::string& dirName );
63  static bool existsDir( const path& dir );
64 
65 
66 private:
67  //
69  struct eqPath {
70  eqPath( const path& ref ) : m_ref( ref ) {}
71  bool operator()( const path& p ) const { return p.string() == m_ref.string(); }
72 
73  private:
75  };
76  // @class lessPath order paths by (system-independent) name
77  // struct lessPath : public std::binary_function<const path&,const path&,bool> {
78  // bool operator() (const path& lhs, const path& rhs) const {
79  // return lhs.string() < rhs.string();
80  // }
81  //};
83 
84  // typedef std::set<path, lessPath> PathSet; ///<a set ordered by path name
85  // PathSet m_dirs; ///<the dir container
86  //
88 };
89 #endif // JOBOPTIONS_DIRSEARCHPATH_H
std::string
STL class.
DirSearchPath::m_dirs
std::vector< path > m_dirs
the dir container
Definition: DirSearchPath.h:87
std::list
STL class.
GaudiAlg.HistoUtils.path
path
Definition: HistoUtils.py:960
std::vector< path >
DirSearchPath::eqPath::eqPath
eqPath(const path &ref)
Definition: DirSearchPath.h:70
DirSearchPath::eqPath
Definition: DirSearchPath.h:69
DirSearchPath::path
boost::filesystem::path path
Definition: DirSearchPath.h:29
DirSearchPath
search for files in a list of directories
Definition: DirSearchPath.h:27
DirSearchPath::DirSearchPath
DirSearchPath()
Definition: DirSearchPath.h:33
DirSearchPath::eqPath::m_ref
path m_ref
Definition: DirSearchPath.h:74
Kernel.h
DirSearchPath::eqPath::operator()
bool operator()(const path &p) const
Definition: DirSearchPath.h:71
compareRootHistos.ref
ref
Definition: compareRootHistos.py:27
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
GaudiPython.Persistency.add
def add(instance)
Definition: Persistency.py:49