artdaq_core  v3_06_00
SimpleLookupPolicy.hh
1 #ifndef artdaq_core_Utilities_SimpleLookupPolicy_h
2 #define artdaq_core_Utilities_SimpleLookupPolicy_h
3 
4 #include <memory>
5 #include "cetlib/filepath_maker.h"
6 #include "cetlib/search_path.h"
7 
8 namespace artdaq {
9 class SimpleLookupPolicy;
10 }
11 
20 class artdaq::SimpleLookupPolicy : public cet::filepath_maker
21 {
22 public:
26  enum class ArgType : int
27  {
28  ENV_VAR = 0,
29  PATH_STRING = 1
30  };
31 
39  SimpleLookupPolicy(std::string const& paths, ArgType argType = ArgType::ENV_VAR);
40 
51  std::string operator()(std::string const& filename) override;
52 
56  virtual ~SimpleLookupPolicy() noexcept;
57 
58 private:
59  SimpleLookupPolicy(SimpleLookupPolicy const&) = delete;
61  SimpleLookupPolicy& operator=(SimpleLookupPolicy const&) = delete;
62  SimpleLookupPolicy& operator=(SimpleLookupPolicy&&) = delete;
63 
67  std::unique_ptr<cet::search_path> cwdPath_;
71  std::unique_ptr<cet::search_path> fallbackPaths_;
72 };
73 
74 #endif /* artdaq_core_Utilities_SimpleLookupPolicy_h */
75 
76 // Local Variables:
77 // mode: c++
78 // End:
SimpleLookupPolicy(std::string const &paths, ArgType argType=ArgType::ENV_VAR)
Constructor.
Constructor argument is a list of directories.
virtual ~SimpleLookupPolicy() noexcept
Default destructor.
ArgType
Flag if the constructor argument is a list of paths or the name of an environment variable...
This class is intended to find files using a set lookup order.
std::string operator()(std::string const &filename) override
Perform the file lookup.
Constructor argument is environment variable name.