Skip to content

Data Exchange, DE Wrapper - Reorganisation of plugin system for Configuration Nodes #696

Merged
dpasukhi merged 7 commits intoOpen-Cascade-SAS:IRfrom
dpasukhi:de_plugin_reorganization
Sep 3, 2025
Merged

Data Exchange, DE Wrapper - Reorganisation of plugin system for Configuration Nodes #696
dpasukhi merged 7 commits intoOpen-Cascade-SAS:IRfrom
dpasukhi:de_plugin_reorganization

Conversation

@dpasukhi
Copy link
Copy Markdown
Member

@dpasukhi dpasukhi commented Aug 30, 2025

  • Added Register and UnRegister methods to DE_ConfigurationNode for managing bindings with DE_Wrapper.
  • Introduced DE_MultiPluginHolder to facilitate registration of multiple configuration nodes simultaneously.
  • Created new plugin factory functions for various configuration nodes (DEBREP, DEXCAF, DEGLTF, DEIGES, DEOBJ, DEPLY, DESTEP, DESTL, DEVRML) to streamline their registration with DE_Wrapper.
  • Removed unnecessary DE_PluginHolder instances from individual configuration node implementations.
  • Updated CMake files to include newly created source files for each configuration node.
  • Implemented singleton patterns in draw commands to ensure plugins are registered only once during initialization.

@dpasukhi dpasukhi added this to the Release 8.0 milestone Aug 30, 2025
@dpasukhi dpasukhi self-assigned this Aug 30, 2025
@dpasukhi dpasukhi added 2. Enhancement New feature or request 1. Data Exchange Import/Export or iterating of the CAD data labels Aug 30, 2025
@dpasukhi dpasukhi changed the title Data Exchange, DE Wrapper - Registration of Configuration Nodes with … Data Exchange, DE Wrapper - Reorganisation of plugin system for Configuration Nodes Aug 30, 2025

This comment was marked as outdated.

@dpasukhi dpasukhi linked an issue Aug 30, 2025 that may be closed by this pull request
…DE_Wrapper

- Added Register and UnRegister methods to DE_ConfigurationNode for managing bindings with DE_Wrapper.
- Introduced DE_MultiPluginHolder to facilitate registration of multiple configuration nodes simultaneously.
- Created new plugin factory functions for various configuration nodes (DEBREP, DEXCAF, DEGLTF, DEIGES, DEOBJ, DEPLY, DESTEP, DESTL, DEVRML) to streamline their registration with DE_Wrapper.
- Removed unnecessary DE_PluginHolder instances from individual configuration node implementations.
- Updated CMake files to include newly created source files for each configuration node.
- Implemented singleton patterns in draw commands to ensure plugins are registered only once during initialization.
@dpasukhi dpasukhi force-pushed the de_plugin_reorganization branch from a8cecf2 to 58b6bd5 Compare August 30, 2025 16:52
@dpasukhi dpasukhi requested a review from Copilot August 30, 2025 16:52

This comment was marked as outdated.

@dpasukhi dpasukhi requested a review from Copilot August 30, 2025 16:54

This comment was marked as outdated.

@dpasukhi dpasukhi requested a review from Copilot August 30, 2025 17:01
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR reorganizes the plugin system for DE configuration nodes by introducing a centralized registration mechanism. The changes move from individual plugin holders in configuration node implementations to a factory-based approach with singleton patterns in Draw commands.

Key changes:

  • Added Register/UnRegister methods to DE_ConfigurationNode for managing bindings with DE_Wrapper
  • Introduced DE_MultiPluginHolder and DEPLUGIN macro for multi-node registration
  • Implemented singleton patterns in Draw commands to ensure one-time plugin registration

Reviewed Changes

Copilot reviewed 37 out of 37 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
DE_ConfigurationNode.hxx/cxx Added Register/UnRegister methods for wrapper binding
DE_PluginHolder.hxx Added DE_MultiPluginHolder template and DEPLUGIN macro
Various XSDRAW*.cxx Added singleton functions for plugin registration
Various TKDExxx.cxx New factory files using DEPLUGIN macro
Various ConfigurationNode.cxx Removed individual DE_PluginHolder instances
FILES.cmake Updated to include new factory source files

Comment thread src/DataExchange/TKDE/DE/DE_PluginHolder.hxx
Comment thread src/DataExchange/TKDE/DE/DE_ConfigurationNode.cxx
Comment thread src/DataExchange/TKDE/DE/DE_ConfigurationNode.cxx
@dpasukhi dpasukhi requested a review from a team August 30, 2025 20:45
Copy link
Copy Markdown
Contributor

@ikochetkova ikochetkova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No remarks

@github-project-automation github-project-automation bot moved this from Todo to Integration in Maintenance Sep 3, 2025
@dpasukhi dpasukhi merged commit e7e1f8a into Open-Cascade-SAS:IR Sep 3, 2025
23 checks passed
@dpasukhi dpasukhi deleted the de_plugin_reorganization branch September 3, 2025 15:51
@github-project-automation github-project-automation bot moved this from Integration to Done in Maintenance Sep 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1. Data Exchange Import/Export or iterating of the CAD data 2. Enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

SIGBUS signal in DRAWEXE

3 participants