mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-31 17:06:29 +00:00
Last minute refactoring
This commit is contained in:
@@ -47,9 +47,9 @@ namespace {
|
||||
return !prefix.empty() && text.rfind(prefix, 0) == 0;
|
||||
}
|
||||
|
||||
void register_kernel_module(ifcopenshell::geometry::kernels::kernel_registry& registry, const ifcopenshell::plugin::module& module) {
|
||||
auto register_plugin = module.get_alias<ifcopenshell::geometry::kernels::register_kernel_plugin_fn>(
|
||||
ifcopenshell::geometry::kernels::kernel_plugin_registration_symbol());
|
||||
void register_kernel_module(ifcopenshell::geom::kernels::kernel_registry& registry, const ifcopenshell::plugin::module& module) {
|
||||
auto register_plugin = module.get_alias<ifcopenshell::geom::kernels::register_kernel_plugin_fn>(
|
||||
ifcopenshell::geom::kernels::kernel_plugin_registration_symbol());
|
||||
register_plugin(registry, module);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace {
|
||||
bool has_module = false;
|
||||
};
|
||||
|
||||
void consider_kernel_info(kernel_match& match, const std::string& geometry_library_lower, const ifcopenshell::geometry::kernels::kernel_info& info) {
|
||||
void consider_kernel_info(kernel_match& match, const std::string& geometry_library_lower, const ifcopenshell::geom::kernels::kernel_info& info) {
|
||||
const auto backend_id = kernel_key(info.backend_id);
|
||||
if (is_prefix(geometry_library_lower, backend_id) && backend_id.size() > match.backend_id.size()) {
|
||||
match.backend_id = backend_id;
|
||||
@@ -67,7 +67,7 @@ namespace {
|
||||
}
|
||||
}
|
||||
|
||||
kernel_match find_kernel_match(ifcopenshell::geometry::kernels::kernel_registry& registry, const std::string& geometry_library_lower) {
|
||||
kernel_match find_kernel_match(ifcopenshell::geom::kernels::kernel_registry& registry, const std::string& geometry_library_lower) {
|
||||
kernel_match match;
|
||||
|
||||
for (const auto& info : registry.kernels()) {
|
||||
@@ -75,7 +75,7 @@ namespace {
|
||||
}
|
||||
|
||||
ifcopenshell::plugin::manager manager;
|
||||
ifcopenshell::plugin::add_search_paths_or_default(manager, &ifcopenshell::geometry::kernels::kernel_plugin_directory);
|
||||
ifcopenshell::plugin::add_search_paths_or_default(manager, &ifcopenshell::geom::kernels::kernel_plugin_directory);
|
||||
for (const auto& path : manager.discover(kernel_plugin_prefix)) {
|
||||
ifcopenshell::plugin::module module;
|
||||
try {
|
||||
@@ -92,7 +92,7 @@ namespace {
|
||||
continue;
|
||||
}
|
||||
|
||||
ifcopenshell::geometry::kernels::kernel_registry plugin_registry;
|
||||
ifcopenshell::geom::kernels::kernel_registry plugin_registry;
|
||||
register_kernel_module(plugin_registry, module);
|
||||
for (const auto& info : plugin_registry.kernels()) {
|
||||
const auto backend_id = kernel_key(info.backend_id);
|
||||
@@ -112,7 +112,7 @@ namespace {
|
||||
}
|
||||
}
|
||||
|
||||
void ifcopenshell::geometry::kernels::kernel_registry::bind(const kernel_info& info, create_fn create, const plugin::module& module) {
|
||||
void ifcopenshell::geom::kernels::kernel_registry::bind(const kernel_info& info, create_fn create, const plugin::module& module) {
|
||||
entry entry;
|
||||
entry.info_ = info;
|
||||
entry.create_ = create;
|
||||
@@ -120,19 +120,19 @@ void ifcopenshell::geometry::kernels::kernel_registry::bind(const kernel_info& i
|
||||
entries_[kernel_key(info.backend_id)] = entry;
|
||||
}
|
||||
|
||||
bool ifcopenshell::geometry::kernels::kernel_registry::has(const std::string& backend_id) const {
|
||||
bool ifcopenshell::geom::kernels::kernel_registry::has(const std::string& backend_id) const {
|
||||
return entries_.find(kernel_key(backend_id)) != entries_.end();
|
||||
}
|
||||
|
||||
std::unique_ptr<ifcopenshell::geometry::kernels::AbstractKernel> ifcopenshell::geometry::kernels::kernel_registry::create(const std::string& backend_id, ifcopenshell::file* file, Settings& settings) const {
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::kernel_registry::create(const std::string& backend_id, ifcopenshell::file* file, ifcopenshell::geom::settings& settings) const {
|
||||
const auto iter = entries_.find(kernel_key(backend_id));
|
||||
if (iter == entries_.end()) {
|
||||
throw ifcopenshell::exception("No geometry kernel registered for " + backend_id);
|
||||
}
|
||||
return std::unique_ptr<AbstractKernel>(iter->second.create_(file, settings));
|
||||
return std::unique_ptr<abstract_kernel>(iter->second.create_(file, settings));
|
||||
}
|
||||
|
||||
std::vector<ifcopenshell::geometry::kernels::kernel_info> ifcopenshell::geometry::kernels::kernel_registry::kernels() const {
|
||||
std::vector<ifcopenshell::geom::kernels::kernel_info> ifcopenshell::geom::kernels::kernel_registry::kernels() const {
|
||||
std::vector<kernel_info> result;
|
||||
for (const auto& pair : entries_) {
|
||||
result.push_back(pair.second.info_);
|
||||
@@ -140,12 +140,12 @@ std::vector<ifcopenshell::geometry::kernels::kernel_info> ifcopenshell::geometry
|
||||
return result;
|
||||
}
|
||||
|
||||
ifcopenshell::geometry::kernels::kernel_registry& ifcopenshell::geometry::kernels::kernel_registry_instance() {
|
||||
ifcopenshell::geom::kernels::kernel_registry& ifcopenshell::geom::kernels::kernel_registry_instance() {
|
||||
static kernel_registry registry;
|
||||
return registry;
|
||||
}
|
||||
|
||||
std::unique_ptr<ifcopenshell::geometry::kernels::AbstractKernel> ifcopenshell::geometry::kernels::construct(ifcopenshell::file* file, const std::string& geometry_library, Settings& settings) {
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::construct(ifcopenshell::file* file, const std::string& geometry_library, ifcopenshell::geom::settings& settings) {
|
||||
auto geometry_library_lower = boost::to_lower_copy(geometry_library);
|
||||
auto& registry = kernel_registry_instance();
|
||||
|
||||
@@ -158,7 +158,7 @@ std::unique_ptr<ifcopenshell::geometry::kernels::AbstractKernel> ifcopenshell::g
|
||||
|
||||
if (geometry_library_lower.rfind("hybrid-", 0) == 0) {
|
||||
geometry_library_lower = geometry_library_lower.substr(strlen("hybrid"));
|
||||
std::vector<std::unique_ptr<AbstractKernel>> kernels;
|
||||
std::vector<std::unique_ptr<abstract_kernel>> kernels;
|
||||
while (!geometry_library_lower.empty()) {
|
||||
if (geometry_library_lower.find("-", 0) == 0) {
|
||||
geometry_library_lower = geometry_library_lower.substr(strlen("-"));
|
||||
@@ -183,7 +183,7 @@ std::unique_ptr<ifcopenshell::geometry::kernels::AbstractKernel> ifcopenshell::g
|
||||
}
|
||||
|
||||
if (!kernels.empty()) {
|
||||
return std::make_unique<HybridKernel>(geometry_library, file, settings, std::move(kernels));
|
||||
return std::make_unique<hybrid_kernel>(geometry_library, file, settings, std::move(kernels));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user