13 static std::vector<std::shared_ptr<RuleSet>> _GLOBAL;
19 for (
auto it = expression_ios.begin(); it != expression_ios.end(); ++it) {
20 if (exprRule->save == (*it)->unique_name) {
21 (*it)->rules.push_back(exprRule);
22 (*it)->appendHeader(exprRule);
26 expression_ios.push_back(std::shared_ptr<RuleSet>(
new RuleSet(exprRule)));
30 rules.push_back(exprRule);
38 rules.push_back(expr_rule);
44 for (
auto& io : expression_ios) io->flush(path, level);
51 for (
auto& r :
rules) {
52 std::shared_ptr<VariableDescriptor> resvar;
67 r->writeTo(ofs, resvar->dataPointer, iframe);
75 auto& res = expr_rule->result;
77 switch (res->dataType) {
79 for (
int i = 0; i < expr_rule->totalTermNumber; ++i) {
80 if (expr_rule->totalTermNumber == 1) {
81 ss <<
FMT(8) << res->name;
89 for (
int i = 0; i < expr_rule->totalTermNumber; ++i) {
90 if (expr_rule->totalTermNumber == 1) {
108 std::shared_ptr<VariableDescriptor> resvar;
109 for (
auto& r :
rules) {
124 std::string key =
utils::concat(resvar->field,
".", resvar->name);
125 res._data.push_back(std::make_tuple(key,
128 resvar->shape->size(),
provide RuleEvaluator class
std::vector< std::shared_ptr< RuleEvaluator > > rules
List of RuleEvaluator.
std::string header
The header of set.
void appendHeader(std::shared_ptr< RuleEvaluator > &expr_rule)
Append header information to the output file.
void flush(const std::string &path, int level)
Flush data to the output file.
static void registerRulesInRuleSet(std::shared_ptr< RuleEvaluator > &exprRule)
Register rules in the RuleSet for a specific input/output file.
void registerRules(std::shared_ptr< RuleEvaluator > &exprRule)
static std::vector< std::shared_ptr< RuleSet > > & getRuleSets()
Get the list of RuleSet instances.
Result getResult(int level)
std::vector< std::shared_ptr< RuleEvaluator > > & getRules()
size_t totalFrameNumber
The number of frames.
static void flush_all(const std::string &path, int level)
Flush data to all output files.
< http://warp.povusers.org/FunctionParser/fparser.html
@ kids_real_type
Represents real number type.
@ kids_complex_type
Represents complex number type.
std::basic_string< CharT > concat(const separator_t< CharT > &sep, Args &&... seq)