aboutsummaryrefslogtreecommitdiffstats
path: root/src/HandlerManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/HandlerManager.cpp')
-rw-r--r--src/HandlerManager.cpp8
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)) {