1#ifndef DBALLE_CMDLINE_PROCESSOR_H
2#define DBALLE_CMDLINE_PROCESSOR_H
4#include <dballe/importer.h>
5#include <dballe/exporter.h>
6#include <dballe/msg/msg.h>
11#define DBALLE_JSON_VERSION "0.1"
41 const std::string& filename,
43 const std::string& msg)
44 : filename(filename), index(index)
46 initmsg(filename, index, msg.c_str());
58 const std::string& filename,
60 const std::exception& original)
61 : filename(filename), index(index)
63 initmsg(filename, index, original.what());
76 const std::string& filename,
78 const std::string& msg,
79 const std::exception& original)
80 : filename(filename), index(index)
82 initmsg(filename, index, msg.c_str());
84 this->msg += original.what();
89 virtual const char* what()
const throw ()
95 void initmsg(
const std::string& fname,
unsigned index,
const char* msg);
103 std::vector<std::shared_ptr<Message>>* msgs;
112 void set_msgs(std::vector<std::shared_ptr<Message>>* new_msgs);
121 virtual bool operator()(
const Item& item) = 0;
126 std::vector<std::pair<int, int>> ranges;
128 void parse(
const std::string& str);
130 bool match(
int val)
const;
136 int subcategory = -1;
140 const char* index_filter =
nullptr;
141 const char* input_type =
"auto";
142 const char* fail_file_name =
nullptr;
149 int subcategory = -1;
160 void set_index_filter(
const std::string& val);
168 bool match_index(
int idx)
const;
169 bool match_common(
const BinaryMessage& rmsg,
const std::vector<std::shared_ptr<dballe::Message>>* msgs)
const;
170 bool match_msgs(
const std::vector<std::shared_ptr<dballe::Message>>& msgs)
const;
174 bool match_json(
const BinaryMessage& rmsg,
const std::vector<std::shared_ptr<dballe::Message>>* msgs)
const;
175 bool match_item(
const Item& item)
const;
181 std::string input_type;
182 const char* fail_file_name;
184 void read_csv(
const std::list<std::string>& fnames,
Action& action);
185 void read_json(
const std::list<std::string>& fnames,
Action& action);
186 void read_file(
const std::list<std::string>& fnames,
Action& action);
191 bool verbose =
false;
192 unsigned count_successes = 0;
193 unsigned count_failures = 0;
197 bool has_fail_file()
const;
199 void read(
const std::list<std::string>& fnames,
Action& action);
Binary message.
Definition: file.h:131
Message importer interface.
Definition: importer.h:72
Query used to filter DB-All.e data.
Definition: query.h:15
Definition: processor.h:179
Match DB-All.e objects using the same queries that can be made on DB-All.e databases.
Definition: matcher.h:91
Definition: processor.h:119
Definition: processor.h:146
void matcher_reset()
Reset to the empty matcher.
void matcher_from_record(const Query &query)
Initialise the matcher from a record.
Definition: processor.h:125
Definition: processor.h:99
void processing_failed(std::exception &e) const __attribute__((noreturn))
Throw a ProcessingException based on e.
void decode(Importer &imp, bool print_errors=false)
Decode all that can be decoded.
void set_msgs(std::vector< std::shared_ptr< Message > > *new_msgs)
Set the value of msgs, possibly replacing the previous one.
Exception used to embed processing issues that mean that processing of the current element can safely...
Definition: processor.h:28
ProcessingException(const std::string &filename, unsigned index, const std::string &msg)
Create a new exception.
Definition: processor.h:40
ProcessingException(const std::string &filename, unsigned index, const std::string &msg, const std::exception &original)
Create a new exception.
Definition: processor.h:75
ProcessingException(const std::string &filename, unsigned index, const std::exception &original)
Create a new exception.
Definition: processor.h:57
Definition: processor.h:134
ExporterOptions with default constructor usable.
Definition: msg.h:39
ImporterOptions with default constructor usable.
Definition: msg.h:26