11 const std::vector<Procedure> &procedures
14 procedures(procedures)
20 auto name_space =
options.get_name_space();
21 name_space.emplace_back(
"rpc");
27 std::set<std::string> schemas;
29 for (
const auto &procedure: procedures)
30 schemas.insert(procedure.schema);
32 for (
const auto &schema: schemas)
33 out <<
"#include \"" <<
options.get_path(schema) <<
"/Procedure.h\"\n";
45 for (
const auto &procedure: procedures)
47 const auto &name = procedure.name;
48 const auto &schema = procedure.schema;
51 class )RRR" << name << R"RRR(: public )RRR" << schema << R"RRR(::Procedure
54 void execute()RRR" << schema << R"RRR(::Writable_Database &message) const override
56 service.)RRR" << name << R"RRR((message);
60 )RRR" << name << R"RRR((Service &service): )RRR" << schema << R"RRR(::Procedure(service) {}
61 } )RRR" << name << R"RRR(;
65 out << "\n const std::vector<joedb::rpc::Procedure *> procedures\n";
68 for (
const auto &procedure: procedures)
69 out <<
" &" << procedure.name <<
",\n";
73 out <<
" Procedures(Service &service):\n";
77 for (
const auto &procedure: procedures)
83 out <<
" " << procedure.name <<
"(service)";
const Compiler_Options & options
Generator(std::string dir_name, std::string file_name, const Compiler_Options &options)
Procedures_h(const Compiler_Options &options, const std::vector< Procedure > &procedures)
void write(std::ostream &out) override
void namespace_open(std::ostream &out, const std::vector< std::string > &n)
void namespace_close(std::ostream &out, const std::vector< std::string > &n)
void namespace_include_guard_open(std::ostream &out, const char *name, const std::vector< std::string > &n)
void namespace_include_guard_close(std::ostream &out)
One code generator for each of the file generated by joedbc.