CSV Line Data I/O
Overview
The CSV line data loader and saver handle reading and writing LineData objects to/from CSV files. Two variants are supported:
- Single-file: All lines across all frames stored in one CSV file with quoted coordinate lists per row.
- Multi-file: One CSV file per frame, each containing X/Y coordinate columns.
File Location
The CSV line data I/O lives in the format-centric location under the DataManagerIO library:
src/DataManager/IO/formats/CSV/lines/
├── Line_Data_CSV.hpp # Option structs and function declarations
└── Line_Data_CSV.cpp # Implementation
This was migrated from the legacy location src/DataManager/Lines/IO/CSV/ to consolidate all CSV loaders under the DataManagerIO shared library, matching the pattern used by points, masks, analog, and digital time series.
Option Structs
Loader Options
CSVSingleFileLineLoaderOptions— Loads from a single CSV file. Conforms toValidLoaderOptionsconcept (has afilepathfield).CSVMultiFileLineLoaderOptions— Loads from a directory of per-frame CSV files. Usesparent_dirinstead offilepath.
Saver Options
CSVSingleFileLineSaverOptions— Saves all frames to a single CSV file.CSVMultiFileLineSaverOptions— Saves one CSV file per frame with zero-padded filenames.
Registration
Both loader and saver are registered through CSVLoader in the format-centric loader architecture. The CSVLoader::getSaverInfo() method returns a SaverInfo entry for DM_DataType::Line with the single-file saver schema.