Loading...
Searching...
No Matches
seqan3::file_validator_base Class Referenceabstract
Argument Parser

An abstract base class for the file and directory validators. More...

`#include <seqan3/argument_parser/validators.hpp>`

Inheritance diagram for seqan3::file_validator_base:
[legend]

## Public Types

using | option_value_type = std::string
| Type of values that are tested by validator.

## Public Member Functions

template<std::ranges::forward_range range_type> requires (std::convertible_to<std::ranges::range_value_t<range_type>, std::filesystem::path const &> && !std::convertible_to<range_type, std::filesystem::path const &>)
void | operator() (range_type const &v) const
| Tests whether every path in list `v` passes validation. See operator()(option_value_type const & value) for further information.
virtual void | operator() (std::filesystem::path const &path) const =0
| Tests if the given path is a valid input, respectively output, file or directory.
Constructors, destructor and assignment
| file_validator_base ()=default
| Defaulted.
| file_validator_base (file_validator_base const &)=default
| Defaulted.
| file_validator_base (file_validator_base &&)=default
| Defaulted.
file_validator_base & | operator= (file_validator_base const &)=default
| Defaulted.
file_validator_base & | operator= (file_validator_base &&)=default
| Defaulted.
virtual | ~file_validator_base ()=default
| Virtual destructor.

## Protected Member Functions

bool | case_insensitive_string_ends_with (std::string_view str, std::string_view suffix) const
| Helper function that checks if a string is a suffix of another string. Case insensitive.
std::string | valid_extensions_help_page_message () const
| Returns the information of valid file extensions.
void | validate_filename (std::filesystem::path const &path) const
| Validates the given filename path based on the specified extensions.
void | validate_readability (std::filesystem::path const &path) const
| Checks if the given path is readable.
void | validate_writeability (std::filesystem::path const &path) const
| Checks if the given path is writable.

## Protected Attributes

std::vector< std::string > | extensions {}
| Stores the extensions.

## Detailed Description

An abstract base class for the file and directory validators.

Template Parameters

  file_t | The type of the file to get the valid extensions for; void on default.

This class provides a common interface for seqan3::input_file_validator and the seqan3::output_file_validator as well as the seqan3::input_directory_validator and seqan3::output_directory_validator.

The type can be further specialised for the seqan3::input_file_validator and the seqan3::output_file_validator using the template argument to determine the valid extensions from the given file type.

Remarks
  For a complete overview, take a look at Argument Parser

## Member Function Documentation

## case_insensitive_string_ends_with()

bool seqan3::file_validator_base::case_insensitive_string_ends_with | ( | std::string_view | str,
|  | std::string_view | suffix ) const

inline protected

Helper function that checks if a string is a suffix of another string. Case insensitive.

Parameters

  str | The string to be searched.
  suffix | The suffix to be searched for.

Returns
  true if suffix is a suffix of str, otherwise false.

## operator()() [1/2]

template<std::ranges::forward_range range_type>
requires (std::convertible_to<std::ranges::range_value_t<range_type>, std::filesystem::path const &> && !std::convertible_to<range_type, std::filesystem::path const &>)

void seqan3::file_validator_base::operator() | ( | range_type const & | v | ) | const

inline

Tests whether every path in list `v` passes validation. See operator()(option_value_type const & value) for further information.

Template Parameters

  range_type | The type of range to check; must model std::ranges::forward_range and the value type must be convertible to std::filesystem::path.

Parameters

  v | The input range to iterate over and check every element.

Exceptions

  seqan3::validation_error |

## operator()() [2/2]

virtual void seqan3::file_validator_base::operator() | ( | std::filesystem::path const & | path | ) | const

pure virtual

Tests if the given path is a valid input, respectively output, file or directory.

Parameters

  path | The path to validate.

This is a pure virtual function and must be overloaded by the derived class.

Implemented in seqan3::input_directory_validator, seqan3::input_file_validator< file_t >, seqan3::output_directory_validator, and seqan3::output_file_validator< file_t >.

## validate_filename()

void seqan3::file_validator_base::validate_filename | ( | std::filesystem::path const & | path | ) | const

inline protected

Validates the given filename path based on the specified extensions.

Parameters

  path | The filename path.

Exceptions

  seqan3::validation_error | if the specified extensions don't match the given path, or std::filesystem::filesystem_error on underlying OS API errors.

## validate_readability()

void seqan3::file_validator_base::validate_readability | ( | std::filesystem::path const & | path | ) | const

inline protected

Checks if the given path is readable.

Parameters

  path | The path to check.

Exceptions

  seqan3::validation_error | if the path is not readable, or std::filesystem::filesystem_error on underlying OS API errors.

## validate_writeability()

void seqan3::file_validator_base::validate_writeability | ( | std::filesystem::path const & | path | ) | const

inline protected

Checks if the given path is writable.

Parameters

  path | The path to check.

Exceptions

  seqan3::validation_error | if the file could not be opened for writing, or std::filesystem::filesystem_error on underlying OS API errors.

The documentation for this class was generated from the following file:

- validators.hpp

Hide me