Skip to content
Snippets Groups Projects
ActionJoinAnswer.java 1.08 KiB
Newer Older
Michael Kmoch's avatar
Michael Kmoch committed
package fucoin.actions.join;

import akka.actor.ActorRef;
import akka.actor.UntypedActorContext;
import fucoin.actions.ClientAction;
import fucoin.actions.persist.ActionSearchMyWallet;
import fucoin.wallet.AbstractWallet;

import java.util.HashMap;
import java.util.Map.Entry;
Michael Kmoch's avatar
Michael Kmoch committed

// Returns some neighbors that might be used as known
// and/or local neighbors
public class ActionJoinAnswer extends ClientAction {
    public final HashMap<String, ActorRef> someNeighbors = new HashMap<>();

    protected void onAction(ActorRef sender, ActorRef self,
                            UntypedActorContext context, AbstractWallet wallet) {
        wallet.log("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors);
        for (Entry<String, ActorRef> neighbor : someNeighbors.entrySet()) {
            wallet.addKnownNeighbor(neighbor.getKey(), neighbor.getValue());
        }
        for (Entry<String, ActorRef> neighbor : someNeighbors.entrySet()) {
            neighbor.getValue().tell(new ActionSearchMyWallet(wallet.getName()), self);
        }
    }