MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ open_composite_reader()

std::shared_ptr< CompositeReader > MayaFlux::IO::IOManager::open_composite_reader ( const std::string &  filepath,
std::optional< Kakshya::CompositeLayout >  layout = std::nullopt 
)

Open a schema-bearing reader selected by file format.

CSV and TSV currently use DelimitedTextReader. The returned reader is owned by the caller and can inspect its layout or read bounded batches. IOManager does not retain it or register it with IOService.

Parameters
filepathPath to a supported Composite file.
layoutOptional exact field layout. Without one, CSV/TSV fields are preserved as UTF-8 text.
Returns
Open reader, or nullptr for an unsupported or invalid file.

Definition at line 786 of file IOManager.cpp.

789{
790 auto delimited = std::make_shared<DelimitedTextReader>();
791 if (!delimited->can_read(filepath)) {
793 "IOManager::open_composite_reader: unsupported format '{}'", filepath);
794 return nullptr;
795 }
796
797 if (layout && !delimited->set_layout(std::move(*layout))) {
799 "IOManager::open_composite_reader: failed to set layout for '{}'", filepath);
800 return nullptr;
801 }
802
803 if (!delimited->open(filepath)) {
805 "IOManager::open_composite_reader: failed to open '{}' because {}",
806 filepath, delimited->get_last_error());
807 return nullptr;
808 }
809
810 return delimited;
811}
#define MF_ERROR(comp, ctx,...)
@ FileIO
Filesystem I/O operations.
@ API
MayaFlux/API Wrapper and convenience functions.

References MayaFlux::Journal::API, MayaFlux::Journal::FileIO, and MF_ERROR.

Referenced by load_composite().

+ Here is the caller graph for this function: