This directory contains PlantUML diagrams documenting the architecture and usage of the dlutils-cpp library.
Class diagram showing the core components of dlutils-cpp:
DlFun<R, Args...>- Template class for type-safe function pointer wrappersDlLibBase- Base class for dynamic library loadinginternal::MakeString- Utility for error message construction- Example user class
LibCryptoextendingDlLibBase - POSIX API integration (dlopen, dlsym, dlclose, dlerror)
To render:
plantuml docs/architecture.puml
# Or use online: https://plantuml.com/plantuml/uml/Flowchart showing the step-by-step process of loading a dynamic library and its symbols:
- Singleton instance creation
- Constructor calling
LoadAll() SelfDlOpen()loading the shared librarySelfDlSym()loading each function symbol- Exception handling at each step
To render:
plantuml docs/loading-flow.pumlSequence diagram showing runtime interaction between components:
- Initialization phase (first
GetInstance()call) - Runtime function calls through
DlFunwrappers - Error handling when function pointers are null
- Cleanup on program exit
To render:
plantuml docs/usage-sequence.puml- Go to PlantUML Online Editor
- Copy the contents of any
.pumlfile - Paste into the editor to view/render
Install PlantUML:
On macOS:
brew install plantumlOn Ubuntu/Debian:
sudo apt-get install plantumlOn Fedora:
sudo dnf install plantumlUsing Docker:
docker run -v $PWD:/data -w /data plantuml/plantuml *.pumlRender all diagrams:
plantuml docs/*.pumlThis will generate PNG images in the docs/ directory.
Install the PlantUML extension for VS Code:
- Install the extension
- Open any
.pumlfile - Press
Alt+Dto preview the diagram
PlantUML plugin is available:
- Go to Settings → Plugins
- Search for "PlantUML"
- Install and restart IDE
- Open
.pumlfiles to view diagrams