Commit 2fd7996b authored by Joseph Noir's avatar Joseph Noir

Remove ambiguities

parent 2e655705
...@@ -215,7 +215,7 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) { ...@@ -215,7 +215,7 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) {
unsubscribe_all(actor_cast<actor>(std::move(ptr))); unsubscribe_all(actor_cast<actor>(std::move(ptr)));
}); });
return { return {
// set a key/value pair // Set a key/value pair.
[=](put_atom, const std::string& key, message& msg) { [=](put_atom, const std::string& key, message& msg) {
CAF_LOG_TRACE(CAF_ARG(key) << CAF_ARG(msg)); CAF_LOG_TRACE(CAF_ARG(key) << CAF_ARG(msg));
if (key == wildcard || key.empty()) if (key == wildcard || key.empty())
...@@ -223,7 +223,7 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) { ...@@ -223,7 +223,7 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) {
auto& vp = self->state.data[key]; auto& vp = self->state.data[key];
vp.first = std::move(msg); vp.first = std::move(msg);
for (auto& subscriber_ptr : vp.second) { for (auto& subscriber_ptr : vp.second) {
// we never put a nullptr in our map // We never put a nullptr in our map.
auto subscriber = actor_cast<actor>(subscriber_ptr); auto subscriber = actor_cast<actor>(subscriber_ptr);
if (subscriber != self->current_sender()) { if (subscriber != self->current_sender()) {
self->send(subscriber, key, vp.first); self->send(subscriber, key, vp.first);
...@@ -232,29 +232,30 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) { ...@@ -232,29 +232,30 @@ behavior peer_serv_impl(stateful_actor<peer_state>* self) {
} }
self->state.data[key].second.clear(); self->state.data[key].second.clear();
}, },
// get a key/value pair // Get a key/value pair.
[=](get_atom, std::string& key) { [=](get_atom, std::string& key) {
auto subscriber = actor_cast<strong_actor_ptr>(self->current_sender()); auto sender = actor_cast<strong_actor_ptr>(self->current_sender());
CAF_LOG_TRACE(CAF_ARG(key)); if (sender) {
// Get the value ... CAF_LOG_TRACE(CAF_ARG(key));
if (key == wildcard || key.empty()) // Get the value ...
return; if (key == wildcard || key.empty())
auto d = self->state.data.find(key); return;
if (d != self->state.data.end()) { auto d = self->state.data.find(key);
self->send(subscriber, std::move(key), d->second.first); if (d != self->state.data.end()) {
return; self->send(actor_cast<actor>(sender), std::move(key),
} d->second.first);
// ... or sub if it is not available. return;
CAF_LOG_TRACE(CAF_ARG(key) << CAF_ARG(subscriber)); }
if (subscriber) { // ... or sub if it is not available.
self->state.data[key].second.insert(subscriber); CAF_LOG_TRACE(CAF_ARG(key) << CAF_ARG(sender));
self->state.data[key].second.insert(sender);
auto& subscribers = self->state.subscribers; auto& subscribers = self->state.subscribers;
auto s = subscribers.find(subscriber); auto s = subscribers.find(sender);
if (s != subscribers.end()) { if (s != subscribers.end()) {
s->second.insert(key); s->second.insert(key);
} else { } else {
self->monitor(subscriber); self->monitor(sender);
subscribers.emplace(subscriber, peer_state::topic_set{key}); subscribers.emplace(sender, peer_state::topic_set{key});
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment