text: #pragma once
  
  #include <experimental/filesystem>
  #include <string>
  
  class IntermediateFilesManager
  {
  public:
      IntermediateFilesManager() = default;
      IntermediateFilesManager(const std::string& t_original_filename);
      std::string prepare_workdir_for_pass(const std::string& t_input_file, const std::string& t_pass_name);
      std::experimental::filesystem::path get_base_workdir_path() const
      {
          return m_base_workdir_path;
      };
      std::experimental::filesystem::path get_input_file_dir_path() const
      {
          return m_input_file_dir_path;
      };
  
  private:
      std::string m_original_filename;
      std::experimental::filesystem::path m_base_workdir_path;
      std::experimental::filesystem::path m_input_file_dir_path;
  };
  