changeset 49:a89c3539bff2

modified LogUpdateCodeSegment
author one
date Fri, 12 Jul 2013 19:56:12 +0900
parents ab8c655ef457
children 459b50f1a6ee
files src/alice/jungle/codesegment/LogUpdateCodeSegment.java src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java src/jungle/test/bbs/NetworkJungleBulletinBoard.java src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java
diffstat 5 files changed, 50 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Fri Jul 12 11:54:07 2013 +0900
+++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Fri Jul 12 19:56:12 2013 +0900
@@ -18,19 +18,27 @@
 	
 	public Receiver arg1 = ids.create(CommandType.PEEK);
 	public Receiver host = ids.create(CommandType.PEEK);
+	public String location = "local";
 	
 	public LogUpdateCodeSegment() {
 		host.setKey("host",0);
 	}
 	
+	public LogUpdateCodeSegment(String _location) {
+		location = _location;
+		host.setKey("local","host",0);
+	}
+	
 	public void run() {
-		System.out.println("--LogUpdateCodeSegment--");
 		int index = arg1.index;
 		String h = host.asString();
 		DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class);
 		if(updaterIsMe(h, container)) {
 			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment();
-			updateCS.arg1.setKey("log", index+1);
+			updateCS.arg1.setKey(location, "log", index+1);
+			if(location.equals("local") && !iAmRootNode(h)) {
+				ods.put("parent", "log", container);
+			}
 			return;
 		}
 		DefaultTreeOperationLog log = null;
@@ -50,14 +58,24 @@
 		if(either.isA()) {
 			throw new IllegalStateException();			
 		}
+		if(location.equals("local")) {
+			NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) editor;
+			container.setRevision(Long.parseLong(nEditor.getRevision()));
+			container.setUpdaterName(nEditor.getUpdaterName());
+		}
+		ods.put("log", container);
 		LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment();
-		updateCS.arg1.setKey("log", index+1);
+		updateCS.arg1.setKey(location, "log", index+1);
 	}
 	
 	private boolean updaterIsMe(String host, DefaultTreeOperationLogContainer container) {
 		return host.equals(container.getServerName());
 	}
 	
+	private boolean iAmRootNode(String h) {
+		return h.equals("node0");
+	}
+	
 	
 	
 }
--- a/src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java	Fri Jul 12 11:54:07 2013 +0900
+++ b/src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java	Fri Jul 12 19:56:12 2013 +0900
@@ -27,7 +27,7 @@
 	Value logValue;
 	String treeName;
 	String uuid;
-	String serverName;
+	String updaterName;
 	long revision;
 	
 	public static void main(String[] args) throws IOException {
@@ -112,12 +112,12 @@
 		return uuid;
 	}
 
-	public void setServerName(String _serverName) {
-		serverName = _serverName;
+	public void setUpdaterName(String _updaterName) {
+		updaterName = _updaterName;
 	}
 	
 	public String getServerName() {
-		return serverName;
+		return updaterName;
 	}
 	
 	public void setRevision(long _revision) {
--- a/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Fri Jul 12 11:54:07 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Fri Jul 12 19:56:12 2013 +0900
@@ -37,16 +37,16 @@
 	private final String treeName;
 	private final TreeEditor editor;
 	private final TreeOperationLog log;
-	private final String serverName;
+	private final String updaterName;
 
-	public NetworkDefaultJungleTreeEditor(String _serverName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor)
+	public NetworkDefaultJungleTreeEditor(String _updaterName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor)
 	{
-		this(_serverName, _treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
+		this(_updaterName, _treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
 	}
 	
-	public NetworkDefaultJungleTreeEditor(String _serverName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor, TreeOperationLog _log)
+	public NetworkDefaultJungleTreeEditor(String _updaterName, String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor, TreeOperationLog _log)
 	{
-		serverName = _serverName;
+		updaterName = _updaterName;
 		treeName = _treeName;
 		root = _root;
 		txManager = _txManager;
@@ -76,7 +76,7 @@
 		DefaultTreeOperationLog treeOperationLog = new DefaultTreeOperationLog(iterable,newLog.length());
 		TreeOperationLog newTreeOpLog = log.append(treeOperationLog);
 		
-		JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor<T>(serverName, treeName, newNode,txManager,editor,newTreeOpLog);
+		JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor<T>(updaterName, treeName, newNode,txManager,editor,newTreeOpLog);
 		return DefaultEither.newB(newEditor);
 	}
 	
@@ -123,7 +123,7 @@
 		}
 		
 		TransactionManager<T> newTxManager = either.b();
-		JungleTreeEditor newTreeEditor = new NetworkDefaultJungleTreeEditor<T>(serverName, treeName, root,newTxManager,editor);
+		JungleTreeEditor newTreeEditor = new NetworkDefaultJungleTreeEditor<T>(updaterName, treeName, root,newTxManager,editor);
 		
 		return DefaultEither.newB(newTreeEditor);
 	}
@@ -154,8 +154,8 @@
 		return treeName;
 	}
 	
-	public String getServerName() {
-		return serverName;
+	public String getUpdaterName() {
+		return updaterName;
 	}
 
 	
--- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Fri Jul 12 11:54:07 2013 +0900
+++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Fri Jul 12 19:56:12 2013 +0900
@@ -80,7 +80,7 @@
 		}
 		/* Put DataSegment */
 		try {
-			putTreeOperationLog((NetworkDefaultJungleTreeEditor)result.b());
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor);
 		} catch (IOException e1) {
 			e1.printStackTrace();
 		}
@@ -110,7 +110,7 @@
 		editor.success();
 		/* Put DataSegment */
 		try {
-			putTreeOperationLog((NetworkDefaultJungleTreeEditor)result.b());
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor);
 		} catch (IOException e1) {
 			e1.printStackTrace();
 		}
@@ -221,17 +221,17 @@
 	private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor) throws IOException {
 		String uuid = editor.getID();
 		String treeName = editor.getTreeName();
-		String serverName = editor.getServerName();
+		String updaterName = editor.getUpdaterName();
 		long revision = Long.parseLong(editor.getRevision());
 		Iterable<TreeOperation> log = editor.getTreeOperationLog();
-		putDataSegment(uuid, treeName, serverName, log, revision);
+		putDataSegment(uuid, treeName, updaterName, log, revision);
 	}
 	
-	private void putDataSegment(String _uuid, String _treeName, String _serverName, Iterable<TreeOperation> _log, long nextRevision) throws IOException {
+	private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable<TreeOperation> _log, long nextRevision) throws IOException {
 		DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
 		container.setTreeName(_treeName);
 		container.setUUID(_uuid);
-		container.setServerName(_serverName);
+		container.setUpdaterName(_updaterName);
 		container.setRevision(nextRevision);
 		container.unconvert(_log);
 		NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate();
--- a/src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java	Fri Jul 12 11:54:07 2013 +0900
+++ b/src/jungle/test/bbs/codesegment/StartBBSCodeSegment.java	Fri Jul 12 19:56:12 2013 +0900
@@ -45,10 +45,6 @@
 		Matcher matcher = pattern.matcher(name);
 		matcher.find();
 		String type = matcher.group(1);
-		int num = new Integer(matcher.group(2));
-
-		LogUpdateCodeSegment cs = new LogUpdateCodeSegment();
-		cs.arg1.setKey("log", 0);
 
 		BulletinBoard cassaBBS = new NetworkJungleBulletinBoard(name);
     	String createBoardMessagePath = "/createBoardMessage";
@@ -75,6 +71,16 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
+    	
+		LogUpdateCodeSegment cs = new LogUpdateCodeSegment();
+
+		int num = new Integer(matcher.group(2));
+		if (num != 0) {
+//			try {Thread.sleep(100);} catch(Exception e)  { e.printStackTrace(); }
+			LogUpdateCodeSegment cs2 = new LogUpdateCodeSegment("parent");
+		}
+
+
 
 	}