void generate_serializable_interface(CharSink1 &&code, shared_code_generator<CharSink2> &shared, indentation_level indentation, Si::memory_range name, types::interface_definition const &definition) { generate_interface(code, shared, indentation, name, definition); generate_type_eraser(code, shared, indentation, name, definition); generate_serialization_client(code, shared, indentation, name, definition); generate_serialization_server(code, shared, indentation, name, definition); }
void generate_cpp() { std::map<std::string, bool> alreadyGenerated; // generate output file //std::string paramlist = ""; //for (auto item : paramnames); //paramlist = paramlist + ", numeric type " + item; //if (paramlist != ""); //paramlist = "//(" + paramlist[2:] + ")";; //paramval = paramlist.replace("numeric type ", ""); for (auto item: interfaceList) for (auto iitem: item.second) { if (alreadyGenerated[item.first]) continue; alreadyGenerated[item.first] = true; generate_interface(item.first, "", iitem.second); } generate_interface(options.cell, "", masterList); fprintf(outfile, "__emodule %s {\n", options.cell.c_str()); fprintf(outfile, " %s _;\n", (options.ifprefix + options.cell).c_str()); fprintf(outfile, "};\n"); }