selection.hpp file
Select file readers by format and codec.
Namespaces
- namespace arcsdec
- APIs of libarcsdec.
- namespace arcsdec::v_1_0_0 inline
- libarcsdec API version 1.0.0.
Classes
-
template<class ReaderType>struct arcsdec::v_1_0_0::details::CreateReader
- Functor to safely create a unique_ptr to a downcasted FileReader.
- class arcsdec::v_1_0_0::DefaultPreference
- Preference for the most specific descriptor.
- class arcsdec::v_1_0_0::DefaultSelector
- Selector for highest preference.
- class arcsdec::v_1_0_0::DescriptorPreference
- Interface for a descriptor preference.
-
template<typename P, typename S>class arcsdec::v_1_0_0::FileReaderPreferenceSelection
- FileReaderSelection of FileReaderDescriptors.
- class arcsdec::v_1_0_0::FileReaderRegistry
- Hold all available FileReaderDescriptors and all supported Formats.
- class arcsdec::v_1_0_0::FileReaderSelection
- Interface to select a FileReaderDescriptor by Format and Codec.
- class arcsdec::v_1_0_0::FileReaderSelector
- Interface for a selector on a set of FileReaderDescriptor instances.
- class arcsdec::v_1_0_0::FormatPreference
- Preference for the most specific descriptor accepting the Format.
- class arcsdec::v_1_0_0::IdSelector
- FileReaderSelector for a specific descriptor id.
- class arcsdec::v_1_0_0::MinPreference
- DescriptorPreference equivalent to MIN_PREFERENCE.
-
template<class D>struct arcsdec::v_1_0_0::RegisterDescriptor
- Register a FileReaderDescriptor type.
-
template<enum Format F>struct arcsdec::v_1_0_0::RegisterFormat
- Register a Format.
Typedefs
- using FileReaders = std::unordered_map<std::string, std::unique_ptr<FileReaderDescriptor>>
- Type for the container of available FileReaderDescriptor instances.
- using FormatList = std::vector<std::unique_ptr<Matcher>>
- An unordered list of Matchers for Formats.
Functions
-
template<class ReaderType>auto cast_reader(std::unique_ptr<FileReader> file_reader) noexcept -> std::pair< std::unique_ptr< ReaderType >, std::unique_ptr< FileReader > > -> auto noexcept
- Downcast a FileReader to a specialized ReaderType.
-
template<class T, typename... Args>auto make_descriptor(Args && ... args) -> std::unique_ptr<FileReaderDescriptor>
- Instantiate FileReaderDescriptor.
- auto select_descriptor(const std::string& filename, const FileReaderSelection& selection, const FormatList& formats, const FileReaders& readers) -> std::unique_ptr<FileReaderDescriptor>
- Select a FileReaderDescriptor.
- auto select_reader(const std::string& filename, const FileReaderSelection& selection, const FormatList& formats, const FileReaders& readers) -> std::unique_ptr<FileReader>
- Select a FileReader.
Function documentation
template<class ReaderType>
auto cast_reader(std::unique_ptr<FileReader> file_reader) noexcept -> std::pair< std::unique_ptr< ReaderType >, std::unique_ptr< FileReader > > noexcept
Downcast a FileReader to a specialized ReaderType.
Parameters | |
---|---|
file_reader in | The pointer to cast |
Returns | Pair of casting result and the original input pointer. |
The first element of the returned pair is a pointer to the requested input object with the requested cast performed. If the cast fails, the first element is a nullptr. The unaltered input pointer is returned as a second element in any case.
template<class T, typename... Args>
std::unique_ptr<FileReaderDescriptor> make_descriptor(Args && ... args)
Instantiate FileReaderDescriptor.
Template parameters | |
---|---|
T | The type to instantiate |
Args | The constructor arguments |
std::unique_ptr<FileReaderDescriptor> select_descriptor(const std::string& filename, const FileReaderSelection& selection, const FormatList& formats, const FileReaders& readers)
Select a FileReaderDescriptor.
Parameters | |
---|---|
filename in | Name of the file to read |
selection in | FileReaderSelection to select from |
formats in | Set of file formats to check filename for |
readers in | Set of available file readers |
Returns | Descriptor that accepts the input file. |
Select a reader that is guaranteed to accept the current input file or return a nullptr.
std::unique_ptr<FileReader> select_reader(const std::string& filename, const FileReaderSelection& selection, const FormatList& formats, const FileReaders& readers)
Select a FileReader.
Parameters | |
---|---|
filename in | Name of the file to read |
selection in | FileReaderSelection to select from |
formats in | Set of file formats to check filename for |
readers in | Set of available file readers |
Returns | FileReader that accepts the input file. |
Select a reader that is guaranteed to accept the current input file or return a null pointer.