#include "DefaultConfigs.h" #include "IndentationConfig.h" #include "LanguageConfig.h" #include "NameManglingRules.h" #include "StructureTemplate.h" #include "TypeMappings.h" #include "Pgsql_oids.h" using namespace Pgsql; std::shared_ptr GetDefaultCppTypeMappings() { auto tm = std::make_shared(); *tm = { { bool_oid, "bool" }, { char_oid, "char" }, { name_oid, "std::string" }, { int8_oid, "int64_t" }, { int2_oid, "int16_t" }, { int4_oid, "int32_t" }, { text_oid, "std::string" }, { oid_oid, "Oid" }, { float4_oid, "float" }, { float8_oid, "double" } }; tm->setDefaultStringType("std::string"); tm->setDefaultContainerType("std::vector<%1>"); return tm; } std::shared_ptr buildDefaultCppLanguageConfig() { auto config = std::make_shared(); config->setTypeMappings(GetDefaultCppTypeMappings()); config->setNameManglingRules(std::make_shared()); auto st_templ = std::make_shared(); st_templ->m_startTemplate = "class /%structname%/ {\npublic:\n"; st_templ->m_endTemplate = "};\n"; // }; st_templ->m_fieldTemplate = "/%typename%/ /%varname%/;"; //st_templ->m_fieldSeparator; config->setStructureTemplate(st_templ); config->setIndentationConfig(std::make_shared()); return config; } std::shared_ptr getDefaultCppLanguageConfig() { static auto config = buildDefaultCppLanguageConfig(); return config; } std::shared_ptr buildPgLabCppLanguageConfig() { auto cfg = buildDefaultCppLanguageConfig(); return cfg; } std::shared_ptr getPgLabCppLanguageConfig() { static auto config = buildPgLabCppLanguageConfig(); return config; }