Skip to content

Commit

Permalink
Merge pull request #36 from smart-cloud/fix
Browse files Browse the repository at this point in the history
added method return the actor addresses himself to the context. conte…
  • Loading branch information
kotbegemot committed Oct 18, 2018
2 parents 7714206 + 1937ad8 commit 39cb3eb
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 8 deletions.
6 changes: 4 additions & 2 deletions core/actor-zeta/actor/local_actor.hpp
Expand Up @@ -34,14 +34,16 @@ namespace actor_zeta { namespace actor {

protected:

void address(actor_address) final;
void addresses(actor_address) final;

void channel(channel::channel) final;

auto address(const std::string&)-> actor_address& final;
auto addresses(const std::string&)-> actor_address& final;

auto channel(const std::string&)->channel::channel& final;

auto self() -> actor_address;

void device(executor::execution_device* e);

executor::execution_device* device() const;
Expand Down
6 changes: 4 additions & 2 deletions core/actor-zeta/behavior/context.hpp
Expand Up @@ -10,14 +10,16 @@ namespace actor_zeta { namespace behavior {

virtual ~context_t() = default;

virtual void address(actor::actor_address) = 0;
virtual void addresses(actor::actor_address) = 0;

virtual auto address(const std::string&) -> actor::actor_address& = 0;
virtual auto addresses(const std::string&) -> actor::actor_address& = 0;

virtual auto channel(channel::channel) -> void = 0;

virtual auto channel(const std::string&) -> channel::channel& = 0;

virtual auto self() -> actor::actor_address = 0;

};


Expand Down
8 changes: 6 additions & 2 deletions core/source/actor/local_actor.cpp
Expand Up @@ -53,15 +53,15 @@ namespace actor_zeta {
}
}

void local_actor::address(actor_address aa) {
void local_actor::addresses(actor_address aa) {
contacts.emplace(aa->name(), aa);
}

void local_actor::channel(channel::channel channel_) {
channels.emplace(channel_->name(),channel_);
}

auto local_actor::address(const std::string &name) -> actor_address& {
auto local_actor::addresses(const std::string &name) -> actor_address& {
return contacts.at(name);
}

Expand All @@ -79,5 +79,9 @@ namespace actor_zeta {
return types;
}

auto local_actor::self() -> actor_address {
return address();
}

}
}
2 changes: 1 addition & 1 deletion core/source/standard_handlers/sync_contacts.cpp
Expand Up @@ -17,7 +17,7 @@ namespace actor_zeta {
auto address = context_.message().body<actor::actor_address>();

if(address){
context_->address(address);
context_->addresses(address);
} else {
error(address->name());
}
Expand Down
2 changes: 1 addition & 1 deletion examples/key-value-storage/main.cpp
Expand Up @@ -157,7 +157,7 @@ class fake_broker final : public broker {
query_.parameter = std::move(parsed_raw_request);
query_.id = query_raw.id;

ctx->address("storage") ->send(
ctx->addresses("storage") ->send(
make_message(
actor_zeta::actor::actor_address(self),
std::string(query_.commands),
Expand Down

0 comments on commit 39cb3eb

Please sign in to comment.