aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/basic/SingletonStorage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/function/basic/SingletonStorage.cpp')
-rw-r--r--src/core/function/basic/SingletonStorage.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/core/function/basic/SingletonStorage.cpp b/src/core/function/basic/SingletonStorage.cpp
index 567d3572..a067090e 100644
--- a/src/core/function/basic/SingletonStorage.cpp
+++ b/src/core/function/basic/SingletonStorage.cpp
@@ -52,6 +52,7 @@ class SingletonStorage::Impl {
std::shared_lock<std::shared_mutex> lock(instances_mutex_);
ins_it = instances_map_.find(channel);
if (ins_it == instances_map_.end()) {
+ SPDLOG_TRACE("cannot find channel object, channel :{}", channel);
return nullptr;
}
return ins_it->second.get();
@@ -67,28 +68,34 @@ class SingletonStorage::Impl {
return channels;
}
- auto SetObjectInChannel(int channel, std::unique_ptr<ChannelObject> p_obj)
+ auto SetObjectInChannel(int channel, ChannelObjectPtr p_obj)
-> GpgFrontend::ChannelObject* {
{
- SPDLOG_TRACE("set channel: {} instance address: {}", channel,
- static_cast<void*>(&instances_map_));
+ SPDLOG_TRACE("set channel: {}, channel object address: {}", channel,
+ static_cast<void*>(p_obj.get()));
assert(p_obj != nullptr);
- if (p_obj == nullptr) return nullptr;
+ if (p_obj == nullptr) {
+ return nullptr;
+ }
- auto* raw_obj = p_obj.get();
p_obj->SetChannel(channel);
+ auto* raw_obj = p_obj.get();
{
std::unique_lock<std::shared_mutex> lock(instances_mutex_);
instances_map_.insert({channel, std::move(p_obj)});
}
+
+ SPDLOG_TRACE(
+ "set channel: {} success, current channel object address: {}",
+ channel, static_cast<void*>(raw_obj));
return raw_obj;
}
}
private:
std::shared_mutex instances_mutex_; ///< mutex for _instances_map
- std::map<int, std::unique_ptr<ChannelObject>>
+ std::map<int, ChannelObjectPtr>
instances_map_; ///< map of singleton instances
};
@@ -109,8 +116,7 @@ auto SingletonStorage::GetAllChannelId() -> std::vector<int> {
return p_->GetAllChannelId();
}
-auto SingletonStorage::SetObjectInChannel(int channel,
- std::unique_ptr<ChannelObject> p_obj)
+auto SingletonStorage::SetObjectInChannel(int channel, ChannelObjectPtr p_obj)
-> GpgFrontend::ChannelObject* {
return p_->SetObjectInChannel(channel, std::move(p_obj));
}