diff --git a/src/main/java/fucoin/AbstractNode.java b/src/main/java/fucoin/AbstractNode.java index c57568bbbe64852303e2f3c05234ac4cd1781d89..9deab9659300d50e0befa9687364eda45906fce5 100644 --- a/src/main/java/fucoin/AbstractNode.java +++ b/src/main/java/fucoin/AbstractNode.java @@ -66,7 +66,13 @@ public abstract class AbstractNode extends UntypedActor implements Serializable } public void log(String string) { - System.out.println(getSelf().path().name() + ": " + string); + if (this instanceof AbstractWallet){ + System.out.println("Yes: "+string); + ((AbstractWallet) this).log(string); + }else{ + System.out.println("No: "+this.getClass()); + System.out.println(getSelf().path().name() + ": " + string); + } } } \ No newline at end of file diff --git a/src/main/java/fucoin/Main.java b/src/main/java/fucoin/Main.java index a0909bbaeeaaac76f7615ff39291dafaa63a4896..620d8d92293f50dab9c62d72a66ae7ee44856878 100644 --- a/src/main/java/fucoin/Main.java +++ b/src/main/java/fucoin/Main.java @@ -16,7 +16,7 @@ import java.util.List; public class Main { - private static int numberOfWallets = 4; + private static int numberOfWallets = 1; private static ActorSystem cSystem; diff --git a/src/main/java/fucoin/actions/Action.java b/src/main/java/fucoin/actions/Action.java index f51e4deb9be136d41ba6f8cf5aec3c4de83a1c88..7bb94e8e3884c9b26fff1d1f01ace868b173d530 100644 --- a/src/main/java/fucoin/actions/Action.java +++ b/src/main/java/fucoin/actions/Action.java @@ -15,9 +15,4 @@ public abstract class Action<T extends AbstractNode> { protected abstract void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, T abstractNode); - - public void log(String string) { - System.out.println(self.path().name() + ": " + string); - } - } diff --git a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java index 4a86c831e49d748af9e33fb323b2257594ad06c1..0f534a3e6edb22e595dd6e67e7d99919aab9a21b 100644 --- a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java +++ b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java @@ -16,7 +16,7 @@ public class ActionJoinAnswer extends ClientAction { protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - log("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors); + 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()); } diff --git a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java index 950b7fdfd40caf1d8d74ec3dd81f28d4d9c54704..fe514e2802102260c18970ab58ce7e85f2e40324 100644 --- a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java +++ b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java @@ -23,7 +23,7 @@ public class ActionSearchWalletReference extends Search { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - log(wallet.getKnownNeighbors() + "contains " + name + "?"); + wallet.log(wallet.getKnownNeighbors() + "contains " + name + "?"); ttl.add(self); ActionSearchWalletReferenceAnswer answer = null; if (this.name.equals(wallet.getName())) { diff --git a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java index 0c3a622c69021b26c9ff6027927069cff5a95cb2..92df3ffdbafce5366480d970de6f3e6df717cbd4 100644 --- a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java +++ b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java @@ -39,7 +39,7 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - System.out.println(self.path().name() + ": ActionCommitDistributedCommittedTransfer is granted?" + granted); + wallet.log("ActionCommitDistributedCommittedTransfer is granted? " + granted); if (granted) { Integer sourceAmount = wallet.amounts.getOrDefault(source, 0); @@ -56,9 +56,9 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction { } } else { - log("abort transaction with id" + id); + wallet.log("abort transaction with id" + id); } - log("wallet.amounts:" + wallet.amounts); + wallet.log("wallet.amounts:" + wallet.amounts); } } diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java index 8279580bdf1d266afbb8efc346123380cfd6f4c1..b754ec9c0fb35479b42094a5e2ec3e862a981962 100644 --- a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java +++ b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java @@ -21,7 +21,7 @@ public class ActionInvokeDistributedCommittedTransfer extends CoordinatorTransac @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, SuperVisorImpl superVisor) { - log("invoke transaction " + source.path().name() + + superVisor.log("invoke transaction " + source.path().name() + " sends " + amount + " to " + target.path().name()); diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java index 688b3f778329f33ffd11a69383a535be33976d47..6f3bd3e2817b47e8d3df213f150fa45a5efe04bf 100644 --- a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java +++ b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java @@ -18,7 +18,7 @@ public class ActionInvokeSentMoney extends Transaction { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - log(wallet.getKnownNeighbors() + ""); + wallet.log(wallet.getKnownNeighbors() + ""); if (wallet.getKnownNeighbors().containsKey(name)) { wallet.getRemoteSuperVisorActor().tell( new ActionInvokeDistributedCommittedTransfer(self, wallet.getKnownNeighbors().get(name), amount), sender); diff --git a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java index 6c0c473d1afa9f8c8f3113dd2404bbeea89c8590..7fc3c7960f882a348bbc13b879ada6621bd603d2 100644 --- a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java +++ b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java @@ -27,14 +27,14 @@ public class ActionPrepareDistributedCommittedTransferAnswer extends Coordinator @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, SuperVisorImpl superVisor) { - log(""+superVisor.getKnownNeighbors()); - log("granted?"+granted); + superVisor.log(""+superVisor.getKnownNeighbors()); + superVisor.log("granted?"+granted); DistributedCommittedTransferRequest request = superVisor.getRequest(id); if(granted){ if(request==null)//unknown DistributedCommittedTransferRequest ignore return; int newCount = request.addPositiveAnswer(sender); - System.out.println(newCount+" have agreed on request"+id); + if(newCount == superVisor.getKnownNeighbors().size()){ ActionCommitDistributedCommittedTransfer acdct = new ActionCommitDistributedCommittedTransfer(source,target,amount,true,timestamp,id); for(ActorRef neighbor : request.getAnswers()){ diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControl.java b/src/main/java/fucoin/gui/SuperVisorGuiControl.java index d27cf2c7fc32540e0b37df3ff1a1e61645b7da39..bea5e7ae5004ddbd003beb1b5fe82dbbdb3620b1 100644 --- a/src/main/java/fucoin/gui/SuperVisorGuiControl.java +++ b/src/main/java/fucoin/gui/SuperVisorGuiControl.java @@ -5,4 +5,6 @@ public interface SuperVisorGuiControl { * Call from SuperVisorImpl after poison pill or kill */ void onLeave(); + + void log(String message); } diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java index 1ca6922eea794d6c728594a6757d36e19891812a..992a851db10c0378acf31ea26f6b93ed48b756d4 100644 --- a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java +++ b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java @@ -59,4 +59,11 @@ public class SuperVisorGuiControlImpl implements SuperVisorGuiControl { public void onLeave() { frame.dispose(); } + + @Override + public void log(String message) { + // One day, we may have a server log GUI as well.. + // Until then, we just print it to the console + System.out.println(message); + } } diff --git a/src/main/java/fucoin/supervisor/SuperVisorImpl.java b/src/main/java/fucoin/supervisor/SuperVisorImpl.java index 4f708ef42e33cddb0ac4f7a59c0dd0b71dfb9653..9249ec47c1a745fd8699da8007c27131fbe3235b 100644 --- a/src/main/java/fucoin/supervisor/SuperVisorImpl.java +++ b/src/main/java/fucoin/supervisor/SuperVisorImpl.java @@ -69,7 +69,6 @@ public class SuperVisorImpl extends AbstractNode { public void addDistributedCommitedTransferRequest( DistributedCommittedTransferRequest request) { - System.out.println("Add request to queue: " + request.getId()); requestQueue.put(request.getId(), request); } @@ -116,4 +115,12 @@ public class SuperVisorImpl extends AbstractNode { public void setAmountTableModel(AmountTableModel amountTableModel) { this.amountTableModel = amountTableModel; } + + public void log(String message){ + if (this.gui != null){ + this.gui.log(message); + } else { + System.out.println(message); + } + } }