21 #include <type_traits>
25 #include "eckit/io/Length.h"
26 #include "eckit/io/Offset.h"
55 static const std::string&
version();
56 static const std::string&
gitsha1();
66 virtual void operator()(
const std::string& columnName,
const std::set<long>& vals) = 0;
67 virtual void operator()(
const std::string& columnName,
const std::set<double>& vals) = 0;
68 virtual void operator()(
const std::string& columnName,
const std::set<std::string>& vals) = 0;
76 Span(std::shared_ptr<SpanImpl> s);
80 eckit::Offset
offset()
const;
81 eckit::Length
length()
const;
85 std::shared_ptr<SpanImpl>
impl_;
98 Reader(
const std::string& path);
99 Reader(eckit::DataHandle& dh);
100 Reader(eckit::DataHandle* dh);
124 bool next(
bool aggregated=
true,
long rowlimit=-1);
129 const std::vector<ColumnInfo>&
columnInfo()
const;
133 Span span(
const std::vector<std::string>&
columns,
bool onlyConstantValues)
const;
149 std::vector<StridedData>& columnFacades);
163 void encode(eckit::DataHandle& out,
164 const std::vector<ColumnInfo>&
columns,
165 const std::vector<ConstStridedData>& data,
166 const std::map<std::string, std::string>& properties = {},
167 size_t maxRowsPerFrame=10000);
173 size_t odbFromCSV(eckit::DataHandle& dh_in, eckit::DataHandle& dh_out,
const std::string& delimiter=
",");
174 size_t odbFromCSV(std::istream& is, eckit::DataHandle& dh_out,
const std::string& delimiter=
",");
175 size_t odbFromCSV(
const std::string& in, eckit::DataHandle& dh_out,
const std::string& delimiter=
",");
std::shared_ptr< DecoderImpl > impl_
Decoder slice(size_t rowOffset, size_t nrows) const
Decoder(const std::vector< std::string > &columns, std::vector< StridedData > &columnFacades)
const std::vector< ColumnInfo > & columnInfo() const
Span span(const std::vector< std::string > &columns, bool onlyConstantValues) const
std::unique_ptr< FrameImpl > impl_
bool next(bool aggregated=true, long rowlimit=-1)
void decode(Decoder &target, size_t nthreads) const
size_t columnCount() const
std::shared_ptr< ReaderImpl > impl_
Reader(const std::string &path)
static void setDoubleMissingValue(double val)
static void treatIntegersAsDoubles(bool flag)
static const std::string & version()
static void setIntegerMissingValue(long val)
static long integerMissingValue()
static const std::string & gitsha1()
static double doubleMissingValue()
eckit::Length length() const
Span(std::shared_ptr< SpanImpl > s)
std::shared_ptr< SpanImpl > impl_
void visit(SpanVisitor &visitor) const
eckit::Offset offset() const
virtual void operator()(const std::string &columnName, const std::set< double > &vals)=0
virtual void operator()(const std::string &columnName, const std::set< std::string > &vals)=0
virtual void operator()(const std::string &columnName, const std::set< long > &vals)=0
void encode(DataHandle &out, const std::vector< ColumnInfo > &columns, const std::vector< ConstStridedData > &data, const std::map< std::string, std::string > &properties, size_t maxRowsPerFrame)
size_t odbFromCSV(DataHandle &dh_in, DataHandle &dh_out, const std::string &delimiter)
odbFromCSV returns number of lines imported