diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-18 12:50:25 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-18 12:50:25 -0300 |
| commit | af8759a9c1d965a3220024d1857aea219d62d898 (patch) | |
| tree | 9cf14af855cac3674f508ec001bd04e262a524ae /src/HandlerManager.cpp | |
| parent | 0fc76b99abbff1d3cef8e2f9fcd56f3ae4f23a7a (diff) | |
| download | RNT-af8759a9c1d965a3220024d1857aea219d62d898.tar.gz RNT-af8759a9c1d965a3220024d1857aea219d62d898.zip | |
Branching and object registry rework (#11)
Diffstat (limited to 'src/HandlerManager.cpp')
| -rw-r--r-- | src/HandlerManager.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/HandlerManager.cpp b/src/HandlerManager.cpp index 8149ff2..cb3b723 100644 --- a/src/HandlerManager.cpp +++ b/src/HandlerManager.cpp @@ -2,6 +2,7 @@ #include "IdentityManager.h" #include "LifecycleManager.h" +#include "NamespaceReferenceManager.h" #include "PermissionsManager.h" namespace nt @@ -14,16 +15,19 @@ namespace nt HandlerManager::HandlerManager(ObjectManager& objects, PermissionsManager& permissions, IdentityManager& identities, - LifecycleManager& lifecycles) + LifecycleManager& lifecycles, + NamespaceReferenceManager& references) : objects_(objects) , permissions_(permissions) , identities_(identities) , lifecycles_(lifecycles) + , references_(references) {} struct HandlerManager::handle* HandlerManager::Open(std::vector<std::string> object_path, void* connection_context) { - ObjectManager::registry* retrieved_object = objects_.Find((const std::vector<std::string>)object_path); + const auto resolved = references_.Resolve(std::move(object_path)); + ObjectManager::registry* retrieved_object = objects_.Find(resolved); if (permissions_.Access(retrieved_object, (const void*)connection_context) && identities_.CanOpen(retrieved_object) && lifecycles_.Contention(retrieved_object)) { |
