Mercurial > hg > Database > Christie
changeset 199:cdf604af6c12
add Prefix Tree
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 23 Feb 2019 04:52:32 +0900 |
parents | 7e97f59a13fa |
children | 60afc98ce6a4 |
files | src/test/java/christie/example/PrefixTree/ChildCodeGear.java src/test/java/christie/example/PrefixTree/ParentCodeGear.java src/test/java/christie/example/PrefixTree/StartPrefixTree.java |
diffstat | 3 files changed, 98 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/christie/example/PrefixTree/ChildCodeGear.java Sat Feb 23 04:52:32 2019 +0900 @@ -0,0 +1,27 @@ +package christie.example.PrefixTree; + +import christie.annotation.Peek; +import christie.codegear.CodeGear; +import christie.codegear.CodeGearManager; +import christie.topology.TopologyDataGear; + +import java.util.List; + +public class ChildCodeGear extends CodeGear { + + @Peek + TopologyDataGear topoDG; + + @Override + protected void run(CodeGearManager cgm) { + List<String> _CLIST = topoDG.getConnectionList(); + if(_CLIST.contains("parent")) { + getDGM("parent").put("childNodeName", topoDG.getNodeName()); + //Conectionの中に"parent"があったらparentに自身のNodenameをputする。 + }else{ + getLocalDGM().put("countNodeName", 1); + cgm.setup(new ParentCodeGear()); + // + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/christie/example/PrefixTree/ParentCodeGear.java Sat Feb 23 04:52:32 2019 +0900 @@ -0,0 +1,34 @@ +package christie.example.PrefixTree; + +import christie.annotation.Peek; +import christie.annotation.Take; +import christie.codegear.CodeGear; +import christie.codegear.CodeGearManager; +import christie.topology.TopologyDataGear; +import christie.topology.node.TopologyNodeConfig; + +public class ParentCodeGear extends CodeGear { + @Peek + TopologyDataGear topoDG; + + @Peek + int maxNodeNum; + + @Peek + TopologyNodeConfig topologyNodeConfig; + + @Take + int countNodeNum; + + @Take + String childNodeName; + + @Override + protected void run(CodeGearManager cgm) { + System.out.println(topoDG.getNodeName() + " : " + childNodeName + " accept"); + if(countNodeNum == maxNodeNum){ + getDGM(topologyNodeConfig.getManagerKey()).put("finish", ""); + + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/christie/example/PrefixTree/StartPrefixTree.java Sat Feb 23 04:52:32 2019 +0900 @@ -0,0 +1,37 @@ +package christie.example.PrefixTree; + +import christie.codegear.CodeGearManager; +import christie.codegear.StartCodeGear; +import christie.topology.manager.StartTopologyManager; +import christie.topology.manager.TopologyManagerConfig; +import christie.topology.node.StartTopologyNode; +import christie.topology.node.TopologyNodeConfig; + +public class StartPrefixTree extends StartCodeGear { + + public StartPrefixTree(CodeGearManager cgm) { + super(cgm); + } + + + public static void main(String[] args){ + int topologyManagerPort = 10000; + int topologyNodePort = 10001; + int nodeNum = 3; + + String[] managerArg = {"--localPort", String.valueOf(topologyManagerPort), "--localPort", "tree"}; + TopologyManagerConfig topologyManagerConfig = new TopologyManagerConfig(managerArg); + new StartTopologyManager(topologyManagerConfig); + + for (int i = 0; i < nodeNum; i++){ + String[] nodeArg = { + "--managerPort", String.valueOf(topologyNodePort), + "--managerHost", "localhost", + "--localPort", String.valueOf(topologyNodePort + 1)}; + TopologyNodeConfig cs = new TopologyNodeConfig(nodeArg); + new StartTopologyNode(cs, new ChildCodeGear()).put("maxNodeNum",topologyManagerConfig.hasChild); + } + + + } +}