# HG changeset patch # User Kazuma # Date 1474968965 -32400 # Node ID 02b2ab7bffe66052478baae169a76409ab085d59 # Parent 0428c8888abf900ef105b53f22e9b6da49117b40 fix diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungle.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungle.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungle.cs Tue Sep 27 18:36:05 2016 +0900 @@ -5,7 +5,7 @@ public class DefaultJungle : Jungle { private Journal journal; - private Dictionary trees; + private TreeMap trees; private string uuid; private TreeEditor editor; @@ -25,37 +25,35 @@ public DefaultJungle(Journal journal, string uuid, TreeEditor editor){ this.journal = new NullJournal(); - this.trees = new Dictionary (); + this.trees = new TreeMap (); this.uuid = uuid; this.editor = editor; } - public JungleTree getTreeByName(string name) { - JungleTree j = trees[name]; - if (j != null) { - return trees [name]; + JungleTree jungle_tree = trees.get(name); + if (jungle_tree != null) { + return jungle_tree; } else { + Debug.Log ("そのTreeは無いようですね。"); return null; } } public JungleTree createNewTree(string name) { ChangeList list = new InnerChangeList(uuid,name); - // Debug.Log( list.getTreeName ()); - DefaultTreeNode root = new DefaultTreeNode (); InterfaceTraverser traverser = new InterfaceTraverser (root, true); TreeContext tc = new DefaultTreeContext (root, null, list, uuid, name, 0, traverser); JungleTree newTree = new DefaultJungleTree (tc, uuid, journal.getWriter (), editor); - trees.Add (name, newTree); - // Trees.getValue => nullの時 ここはどう書けば? -// if (trees.TryGetValue (name, newTree) != null) { -// return null; -// } + if (newTree != null) { + trees = trees.put (name, newTree); + } else { + Debug.Log ("こんばんは、nullです。"); + } return newTree; - } + } public class InnerChangeList : ChangeList { diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungleTree.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungleTree.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungleTree.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,11 +1,8 @@ -using UnityEngine; -using System.Collections; -using System; -using System.Threading; + public class DefaultJungleTree : JungleTree { - //atomic reference undefine c#. + private AtomicReference repository; private string uuid; private ChangeListWriter writer; diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/JungleTreeEditor.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/JungleTreeEditor.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/JungleTreeEditor.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,8 +1,8 @@ -using UnityEngine; + public interface JungleTreeEditor { Either addNewChildAt(NodePath path,int pos); Either deleteChildAt(NodePath path,int pos); - Either putAttribute(NodePath path,string key, GameObject value); + Either putAttribute(NodePath path,string key, byte[] value); Either deleteAttribute(NodePath path,string key); Either replaceNewRootNode(); Either edit(NodePath path,NodeEditor editor); diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/Attributes.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/Attributes.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/Attributes.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,5 +1,5 @@ using UnityEngine; public interface Attributes{ - GameObject get (string key); + byte[] get (string key); string getString (string key); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/DefaultNode.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/DefaultNode.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/DefaultNode.cs Tue Sep 27 18:36:05 2016 +0900 @@ -12,13 +12,6 @@ this.next = next; } -// public DefaultNode(Node attribute1, TailNode tailNode) -// { -// this.attribute1 = attribute1; -// this.tailNode = tailNode; -// } - - public Node getNext() { return next; } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/List.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/List.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/list/List.cs Tue Sep 27 18:36:05 2016 +0900 @@ -56,8 +56,9 @@ public IEnumerator iterator() { Node currentNode = head.getNext(); while (currentNode.getAttribute() != null) { + Debug.Log (currentNode.getAttribute ().ToString()); yield return (T)currentNode.getAttribute(); - currentNode = currentNode.getNext(); + currentNode = currentNode.getNext (); } } @@ -109,17 +110,9 @@ } public string toString() { - string pathString = "<"; //IEnumerator iterator = reverseIterator(); - while (true) { -// pathString += iterator.next(); -// if (iterator.hasNext()) -// pathString += ","; -// else -// break; - } - pathString += ">"; - return pathString; + // pathString += ">"; + return "toString"; } public List append(List list) { diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/EmptyNode.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/EmptyNode.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/EmptyNode.cs Tue Sep 27 18:36:05 2016 +0900 @@ -28,7 +28,7 @@ return false; } - public override TreeMapNode createNode(K k,V value,TreeMapNode left, TreeMapNode right){ + public override TreeMapNode createNode(K key,V value,TreeMapNode left, TreeMapNode right){ return new RedNode (key, value, new EmptyNode (), new EmptyNode ()); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/TreeMap.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/TreeMap.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/data/treemap/TreeMap.cs Tue Sep 27 18:36:05 2016 +0900 @@ -50,7 +50,7 @@ } public TreeMap delete(K key) { - if (key == null) { + if (key.Equals(default(K))) { return this; } rebuildNode rootRebuildNode = root.delete (key, null, this.comparator, Rotate.N); diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultNodePath.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultNodePath.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultNodePath.cs Tue Sep 27 18:36:05 2016 +0900 @@ -5,9 +5,6 @@ public class DefaultNodePath : NodePath { private List path = new List(); - int[] _array; - int Count; - IEnumerator IEnumerable.GetEnumerator() { // call the generic version of the method @@ -16,16 +13,7 @@ public IEnumerator GetEnumerator() { - for (int i = 0; i < Count; i++) - yield return _array[i]; - } - - - - public void Start() { - NodePath p = new DefaultNodePath(); - p = p.add(1).add(2).add(3).add(4); - Debug.Log (p.ToString ()); + return path.iterator (); } public DefaultNodePath() { @@ -36,10 +24,13 @@ this.path = path; } - -// public IEnumerator iterator() { -// return path.iterator(); -// } + /// + /// Listに追加します。 + /// path = path.add(0)を2回する + /// path = path.add(0).add(0)する + /// これは同じ + /// + /// Position. public NodePath add(int pos) { List newPath = path.addLast(pos); @@ -58,7 +49,7 @@ return new Pair(last, new DefaultNodePath(list)); } - public string toString() { + public override string ToString() { return path.toString(); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultTreeEditor.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultTreeEditor.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultTreeEditor.cs Tue Sep 27 18:36:05 2016 +0900 @@ -21,10 +21,6 @@ private Either clone(Traversal t, NodeEditor editor){ List> path = new List> (); - //while(a.MoveNext()) { - // Debug.Log ("value = " + a.Current); - //} - foreach (Direction direction in t) { path = path.addLast (direction); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/TreeNodeAttributes.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/TreeNodeAttributes.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/TreeNodeAttributes.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,8 +1,8 @@ using System.Collections.Generic; using UnityEngine; public interface TreeNodeAttributes : Attributes { - Either delete(string key); - Either put(string key, GameObject value); - TreeMap getAttributesAsRawMap(); + Either delete(string key); + Either put(string key, byte[] value); + TreeMap getAttributesAsRawMap(); IEnumerator getKeys(); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/DefaultTreeOperationLog.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/DefaultTreeOperationLog.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/DefaultTreeOperationLog.cs Tue Sep 27 18:36:05 2016 +0900 @@ -9,9 +9,6 @@ private IEnumerable list; private int size; - TreeOperation[] _array; - TreeOperation Count; - IEnumerator IEnumerable.GetEnumerator() { // call the generic version of the method @@ -20,8 +17,9 @@ public IEnumerator GetEnumerator() { - for (int i = 0; i < Convert.ToInt32(Count); i++) - yield return _array[i]; + foreach (var i in list) { + yield return i; + } } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/LoggingAttributes.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/LoggingAttributes.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/LoggingAttributes.cs Tue Sep 27 18:36:05 2016 +0900 @@ -11,7 +11,7 @@ log = _log; } - public GameObject get(string _key) + public byte[] get(string _key) { TreeNodeAttributes attributes = wrap.getAttributes(); return attributes.get(_key); @@ -39,7 +39,7 @@ return edit(deleteAttribute); } - public Either put(string _key, GameObject _value) + public Either put(string _key, byte[] _value) { PutAttributeOperation putAttribute = new PutAttributeOperation(_key,_value); return edit(putAttribute); diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/AppendChildAtOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/AppendChildAtOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/AppendChildAtOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -30,9 +30,9 @@ return null; } - public GameObject getValue() + public byte[] getValue() { - return null; + return new byte[1]{0}; } } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteAttributeOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteAttributeOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteAttributeOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -25,8 +25,8 @@ return key; } - public GameObject getValue() { - return null; + public byte[] getValue() { + return new byte[1]{0}; } } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteChildAtOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteChildAtOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/DeleteChildAtOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -31,9 +31,9 @@ return null; } - public GameObject getValue() + public byte[] getValue() { - return null; + return new byte[1]{0}; } } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/NodeOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/NodeOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/NodeOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -4,5 +4,5 @@ Either invoke (TreeNode _target); int getPosition(); string getKey(); - GameObject getValue(); + byte[] getValue(); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/PutAttributeOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/PutAttributeOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/PutAttributeOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -2,9 +2,9 @@ public class PutAttributeOperation : NodeOperation { private string key; - private GameObject value; + private byte[] value; - public PutAttributeOperation(string _key,GameObject _value) + public PutAttributeOperation(string _key, byte[] _value) { key = _key; value = _value; @@ -30,7 +30,7 @@ return key; } - public GameObject getValue() + public byte[] getValue() { return value; } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/ReplaceRootNodeOperation.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/ReplaceRootNodeOperation.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/operations/ReplaceRootNodeOperation.cs Tue Sep 27 18:36:05 2016 +0900 @@ -20,8 +20,8 @@ return null; } - public GameObject getValue() { - return null; + public byte[] getValue() { + return new byte[1]{0}; } } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/transformer/PutAttribute.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/transformer/PutAttribute.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/transformer/PutAttribute.cs Tue Sep 27 18:36:05 2016 +0900 @@ -3,9 +3,9 @@ public class PutAttribute : NodeEditor { private string key; - private GameObject value; + private byte[] value; - public PutAttribute(string _key,GameObject _value) + public PutAttribute(string _key, byte[] _value) { key = _key; value = _value; diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/AtomicReference.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/AtomicReference.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/AtomicReference.cs Tue Sep 27 18:36:05 2016 +0900 @@ -2,27 +2,17 @@ public class AtomicReference where T : class { private T value; - private bool isSet = false; - - public AtomicReference() { } public AtomicReference(T value) { this.value = value; } - public T CompareAndSet(T newValue) { + public bool CompareAndSet(T newValue, T prevValue) { // change to compere exchange. - isSet = true; - return Interlocked.CompareExchange(ref value, value, newValue); + T oldValue = value; + return (oldValue != Interlocked.CompareExchange (ref value, newValue, prevValue)); } - - public bool OptimicSet(T oldvalue) { - T old; - do { - old = value; - } while (old != CompareAndSet (value)); - return isSet; - } + public T Get() { return value; diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultJungleTreeEditor.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultJungleTreeEditor.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultJungleTreeEditor.cs Tue Sep 27 18:36:05 2016 +0900 @@ -15,12 +15,12 @@ - public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager _txManager,TreeEditor _editor,TreeOperationLog _log) + public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager txManager,TreeEditor editor,TreeOperationLog log) { this.root = newNode; - this.txManager = _txManager; - this.editor = _editor; - this.log = _log; + this.txManager = txManager; + this.editor = editor; + this.log = log; } @@ -36,7 +36,6 @@ OperationLog newLog = newLogging.getOperationLog (); TreeNode newNode = newLogging.getWrap (); - // 無名クラスが書けてない IterableConverter.Converter converter = new InnerConverter (_path); @@ -65,7 +64,7 @@ return _edit(_path,deleteChildAt); } - public Either putAttribute(NodePath _path, string _key, GameObject _value) { + public Either putAttribute(NodePath _path, string _key, byte[] _value) { PutAttribute putAttribute = new PutAttribute (_key, _value); return _edit (_path, putAttribute); } @@ -79,14 +78,19 @@ return _edit(_path,_editor); } + /// + /// Treeを変更したあとSuccess(push)を行う + /// + public Either success() { - Either either = txManager.commit(root,log); + Either either = this.txManager.commit(this.root, this.log); + // このlogをサーバにpushする? if(either.isA()){ return DefaultEither.newA(either.a()); } TransactionManager newTxManager = either.b(); - JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(root,newTxManager,editor); + JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(this.root, newTxManager, this.editor); return DefaultEither.newB(newTreeEditor); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTransactionManager.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTransactionManager.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTransactionManager.cs Tue Sep 27 18:36:05 2016 +0900 @@ -28,7 +28,7 @@ // traverser.createIndex(); TreeContext newTreeContext = new DefaultTreeContext(newRoot , tip, list, uuid, _treeName, nextRevision,traverser); // compare and setがどういう役割か?Javaで - if (repository.OptimicSet(newTreeContext)) { // CompareAndSetが成功した場合に処理を実行 + if (repository.CompareAndSet(newTreeContext, newTreeContext.prev())) { // CompareAndSetが成功した場合に処理を実行 TransactionManager txManager = new DefaultTransactionManager(writer, newTreeContext, repository, uuid); return DefaultEither.newB(txManager); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNode.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNode.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNode.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,17 +1,17 @@ using UnityEngine; public class DefaultTreeNode : TreeNode { private List children; - private TreeMap attrs; + private TreeMap attrs; // string nodeId = new VMID().toString(); - private static List NIL_LIST = new List(); + private static readonly List NIL_LIST = new List(); public DefaultTreeNode() - : this (NIL_LIST, new TreeMap ()) + : this (NIL_LIST, new TreeMap ()) { } - public DefaultTreeNode(List _children, TreeMap _attrs) { + public DefaultTreeNode(List _children, TreeMap _attrs) { attrs = _attrs; children = _children; } @@ -33,7 +33,7 @@ } public Either appendRootNode() { - TreeNodeChildren newRootChildren = new DefaultTreeNodeChildren(NIL_LIST, new TreeMap()); + TreeNodeChildren newRootChildren = new DefaultTreeNodeChildren(NIL_LIST, new TreeMap()); Either either = newRootChildren.addNewChildAt(0,this); return either; } diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeAttribute.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeAttribute.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeAttribute.cs Tue Sep 27 18:36:05 2016 +0900 @@ -6,14 +6,14 @@ public class DefaultTreeNodeAttribute : TreeNodeAttributes { public List children; - public TreeMap attrs; + public TreeMap attrs; - public DefaultTreeNodeAttribute(List _children, TreeMap _attrs){ + public DefaultTreeNodeAttribute(List _children, TreeMap _attrs){ children = _children; // null? attrs = _attrs; } - public TreeMap getAttributesAsRawMap(){ + public TreeMap getAttributesAsRawMap(){ return attrs; } @@ -26,35 +26,35 @@ return DefaultEither.newA(NodeEditorError.DELETE_KEY_NOT_FOUND); } - TreeMap newMap = attrs.delete(_key); + TreeMap newMap = attrs.delete(_key); TreeNode newNode = new DefaultTreeNode(children, newMap); return DefaultEither.newB(newNode); } - public Either put(string _key, GameObject _value){ + public Either put(string _key, byte[] _value){ if (_key == null || _value == null) { return DefaultEither.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED); } - TreeMap newMap = attrs.put (_key, _value); + TreeMap newMap = attrs.put (_key, _value); TreeNode newNode = new DefaultTreeNode (children, newMap); return DefaultEither.newB (newNode); } - public GameObject get(string _key) { + public byte[] get(string _key) { if (_key == null) { - return null; + return new byte[1]{0}; } - GameObject op = attrs.get(_key); //null + byte[] op = attrs.get(_key); //null if (op != null) { - return op.gameObject; + return op; } - return null; + return new byte[1]{0}; } - public string getString(string key , Encoding enc) { + public string getString(string key, Encoding enc) { char[] attribute = key.ToCharArray(); if (attribute != null){ return new string(attribute); diff -r 0428c8888abf -r 02b2ab7bffe6 src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeChildren.cs --- a/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeChildren.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/transaction/DefaultTreeNodeChildren.cs Tue Sep 27 18:36:05 2016 +0900 @@ -4,9 +4,9 @@ public class DefaultTreeNodeChildren : TreeNodeChildren { public List children; - public TreeMap attrs; + public TreeMap attrs; - public DefaultTreeNodeChildren(List _children, TreeMap _attrs){ + public DefaultTreeNodeChildren(List _children, TreeMap _attrs){ children = _children; attrs = _attrs; } diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/DefaultJungleTreeTest.cs --- a/src/test/csharp/DefaultJungleTreeTest.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/test/csharp/DefaultJungleTreeTest.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,43 +1,49 @@ using UnityEngine; -using System.Collections; using System; //using System.Diagnostics; -public class DefaultJungleTreeTest : MonoBehaviour { // apiの仕様的にこんな感じ - +public class DefaultJungleTreeTest : MonoBehaviour { + // apiの仕様的にこんな感じ + private readonly int COUNT = 500; public Jungle instance() { Jungle j = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); // hogeというtreeを作る return j; } - public static string key = "KEY"; - public GameObject value; + public string key = "moumou"; + private byte[] value = BitConverter.GetBytes(10); - void Start() { - Jungle j = instance (); - JungleTree tree = j.createNewTree ("tree"); // hogeの中にtreeという名前の木を作る + public void Insert () { + Jungle j = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); + JungleTree t = j.createNewTree("tree"); - JungleTreeEditor editor1 = tree.getTreeEditor (); // editor + JungleTreeEditor editor1 = t.getTreeEditor(); - DefaultNodePath path = new DefaultNodePath (); - // NodePath path; + DefaultNodePath root = new DefaultNodePath(); + + float check_time = Time.realtimeSinceStartup; - Either either = editor1.putAttribute (path, key, value); - if (either.isA ()) { // 失敗した場合のコード - Debug.Log ("失敗しました。"); - } - editor1 = either.b (); //成功した場合 - editor1.success (); // 大本にあるTreeにここで変更を加える + for(int i = 0; i < COUNT; i++) { + Either either = editor1.putAttribute(root, i.ToString(), value); + if (either.isA()) { + Debug.Log("失敗しました。"); + } + editor1 = either.b (); - TreeNode node = tree.getRootNode (); - Debug.Log (node); - Debug.Log (node.getAttributes ().getKeys ()); - GameObject v = node.getAttributes ().get (key); - Debug.Log (v); - + Either r = editor1.success(); + if (!r.isA()) { + Debug.Log("失敗しました。"); + } + r.b(); + } + check_time = Time.realtimeSinceStartup - check_time; + print ("処理時間 : " + check_time); + + TreeNode node = t.getRootNode(); + for (int i = 0; i < COUNT; i++) { + byte[] v = node.getAttributes ().get (i.ToString()); + print (BitConverter.ToInt32 (v, 0)); + } } - void Update() { - - } } \ No newline at end of file diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/list/deleteTest.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/list/deleteTest.cs Tue Sep 27 18:36:05 2016 +0900 @@ -0,0 +1,16 @@ +using UnityEngine; +using System.Collections; + +public class deleteTest : MonoBehaviour { + + void Start () { + List list = new List(); + + for(int count = 0; count < 10; count++){ + list = list.addLast(count); + } + List newList = list.delete(5); + Debug.Log(list.getHead().length()); + Debug.Log (newList.getHead ().length ()); + } +} diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/list/replaceTest.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/list/replaceTest.cs Tue Sep 27 18:36:05 2016 +0900 @@ -0,0 +1,18 @@ +using UnityEngine; + +public class replaceTest : MonoBehaviour { + + // Use this for initialization + void Start () { + List list = new List (); + for (int count = 0; count < 10; count++) { + list = list.addLast (count); + Debug.Log("list" + list.tail()); + } + List newList = list.replace (5, 15); + int attribute = list.index (5); + Debug.Log (attribute); + attribute = newList.index (5); + Debug.Log (attribute); + } +} diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapDelete.cs --- a/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapDelete.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapDelete.cs Tue Sep 27 18:36:05 2016 +0900 @@ -1,5 +1,4 @@ using UnityEngine; -using System.Collections; public class TreeMapDelete : MonoBehaviour { @@ -7,20 +6,18 @@ void Start () { TreeMap map = new TreeMap (); for (int count = 1; count < 6; count++) { - Debug.Log (count); map = map.put (count, count); - int val = map.get(count); - //Debug.Log ("value : " + val); map.checkDepth (); } // ただ消すための数字をここに入れているだけ - List list = new List(5); - for (int i = 1; i < 5; i++) { - list.addLast (i); + List list = new List(); + for (int count = 1; count < 6; count++) { + list = list.addLast (count); } foreach(int num in list){ + Debug.Log(num); map = map.delete(num); map.checkDepth(); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapTest.cs --- a/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapTest.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/test/csharp/jp.ac.u-ryukyu.ie.cr/data/treemap/TreeMapTest.cs Tue Sep 27 18:36:05 2016 +0900 @@ -24,7 +24,12 @@ // if (checknull){ // Debug.Log(map.get()); // } - + for(int count = 5; count > -10; count--){ + int op = map.get(count); + if(op != null) { + Debug.Log("op " + op); + } + } Debug.Log ("end"); } diff -r 0428c8888abf -r 02b2ab7bffe6 src/test/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/nodeeditor/PutAttributeTest.cs --- a/src/test/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/nodeeditor/PutAttributeTest.cs Tue Jul 05 07:20:41 2016 +0900 +++ b/src/test/csharp/jp.ac.u-ryukyu.ie.cr/jungle/core/nodeeditor/PutAttributeTest.cs Tue Sep 27 18:36:05 2016 +0900 @@ -4,7 +4,7 @@ public class PutAttributeTest : MonoBehaviour { string key = "hoge"; - public GameObject value; + public byte[] value; // Use this for initialization void Start () { @@ -17,7 +17,7 @@ } LoggingNode newnode = either.b (); Debug.Log (newnode); - GameObject ret = newnode.getAttributes ().get (key); + byte[] ret = newnode.getAttributes ().get (key); Debug.Log ("insertしたものは" + ret); }