std::string GenerateMasterInitialization(Model &model, clang::ASTContext *context) { std::stringstream stream; stream << "#include \"" << model.GetModelFileName() << "\"" << "\n" << "#include <vector>" << "\n" << "#include \"simulation_structs.hpp\"\n" << "#include \"types.hpp\"" << "\n\n"; stream << GenerateAttributesMPIDatatypesFunction(model, context) << "\n" << GenerateAgentsMPIDatatypesFunction(model) << "\n" << GenerateCriticalStructsMPIDatatypesFunction(model) << "\n" << GenerateInteractionsMPIDatatypesFunction(model, context) << "\n" << GenerateAttributesSizeFunction(model) << "\n" << GenerateCriticalAttributesFunction(model) << "\n" << GenerateNonSendableAgentTypesFunction(model) << "\n" << GeneratePublicAttributesOffsetsFunction(model) << "\n" << GeneratePublicStructSizesFunction(model) << "\n" << GenerateCriticalAttributesOffsetsFunction(model) << "\n" << GenerateCriticalStructSizesFunction(model) << "\n" << GenerateAgentsNamesRelation(model) << "\n" << GenerateAttributesNamesRelation(model) << "\n" << GenerateNbAgentTypesFunction(model) << "\n" << GenerateNbInteractionTypesFunction(model) << "\n"; return stream.str(); }
std::string GenerateStructFile(Model &model) { std::stringstream stream; stream << "#ifndef SIMULATION_STRUCTS_HPP_\n" << "#define SIMULATION_STRUCTS_HPP_\n\n" << "#include <vector>" << "\n" << "#include \"types.hpp\"" << "\n" << "#include \"agent.hpp\"" << "\n" << "#include \"" << model.GetModelFileName() << "\"\n" << "#include \"interaction.hpp\"" << "\n\n" << GenerateAttributesStruct(model) << "\n" << "#endif\n"; return stream.str(); }