11 const std::vector<Procedure> &procedures
14 procedures(procedures)
20 auto name_space =
options.get_name_space();
21 name_space.emplace_back(
"rpc");
24 out <<
"\n#include \"joedb/rpc/Signature.h\"\n";
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) <<
"/Memory_Database.h\"\n";
41 inline const auto &get_signatures()
43 static const std::vector<joedb::rpc::Signature> signatures
47 for (
const auto &procedure: procedures)
49 out <<
" {\"" << procedure.name <<
"\", " << procedure.schema;
50 out <<
"::Memory_Database().get_data()},\n";
54 out <<
" return signatures;\n";
const Compiler_Options & options
Generator(std::string dir_name, std::string file_name, const Compiler_Options &options)
void write(std::ostream &out) override
Signatures_h(const Compiler_Options &options, const std::vector< Procedure > &procedures)
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.