Mercurial > hg > Database > jungle-network
comparison src/alice/jungle/transaction/NetworkTransactionManager.java @ 42:4419ac56cbfd
implemented serverName filed
author | one |
---|---|
date | Thu, 11 Jul 2013 19:58:36 +0900 |
parents | b8b9668da13c |
children | 12d87bb4b84d |
comparison
equal
deleted
inserted
replaced
41:b8b9668da13c | 42:4419ac56cbfd |
---|---|
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; | 22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; |
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; | 23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; |
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; | 24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; |
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
27 import jungle.test.bbs.codesegment.NullCodeSegmentForUpdate; | |
27 | 28 |
28 public class NetworkTransactionManager<T extends TreeNode<T>> implements TransactionManager<T> | 29 public class NetworkTransactionManager<T extends TreeNode<T>> implements TransactionManager<T> |
29 { | 30 { |
30 | 31 |
31 private final AtomicReservableReference<TreeContext<T>> repository; | 32 private final AtomicReservableReference<TreeContext<T>> repository; |
32 private final TreeContext<T> tip; | 33 private final TreeContext<T> tip; |
33 private final ChangeListWriter writer; | 34 private final ChangeListWriter writer; |
34 private final String uuid; | 35 private final String uuid; |
35 private final String treeName; | 36 private final String treeName; |
37 private final String serverName; | |
36 | 38 |
37 public NetworkTransactionManager(String _treeName, ChangeListWriter _writer,TreeContext<T> _tip, | 39 public NetworkTransactionManager(String _treeName, ChangeListWriter _writer,TreeContext<T> _tip, |
38 AtomicReservableReference<TreeContext<T>> _repository,String _uuid) | 40 AtomicReservableReference<TreeContext<T>> _repository,String _uuid, String _serverName) |
39 { | 41 { |
40 repository = _repository; | 42 repository = _repository; |
41 tip = _tip; | 43 tip = _tip; |
42 writer = _writer; | 44 writer = _writer; |
43 uuid = _uuid; | 45 uuid = _uuid; |
44 treeName = _treeName; | 46 treeName = _treeName; |
47 serverName = _serverName; | |
45 } | 48 } |
46 | 49 |
47 @Override | 50 @Override |
48 public Either<Error, TransactionManager<T>> commit(T _newRoot,final TreeOperationLog _log) { | 51 public Either<Error, TransactionManager<T>> commit(T _newRoot,final TreeOperationLog _log) { |
49 ChangeSet cs = tip.getChangeSet(); | 52 ChangeSet cs = tip.getChangeSet(); |
69 Result r = writer.write(list); | 72 Result r = writer.write(list); |
70 if(r != Result.SUCCESS) { | 73 if(r != Result.SUCCESS) { |
71 return DefaultEither.newA((Error)new DefaultError()); | 74 return DefaultEither.newA((Error)new DefaultError()); |
72 } | 75 } |
73 try { | 76 try { |
74 updateDataSegment(uuid, treeName, list); | 77 putDataSegment(uuid, treeName, list); |
75 } catch (IOException e) { | 78 } catch (IOException e) { |
76 e.printStackTrace(); | 79 e.printStackTrace(); |
77 } | 80 } |
78 reservation.confirm(); | 81 reservation.confirm(); |
79 TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid); | 82 TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid, serverName); |
80 return DefaultEither.newB(txManager); | 83 return DefaultEither.newB(txManager); |
81 } | 84 } |
82 | 85 |
83 private void updateDataSegment(String _uuid, String _treeName, Iterable<TreeOperation> _log) throws IOException { | 86 private void putDataSegment(String _uuid, String _treeName, Iterable<TreeOperation> _log) throws IOException { |
84 DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer(); | 87 DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer(); |
85 container.setTreeName(_treeName); | 88 container.setTreeName(_treeName); |
86 container.setUUID(_uuid); | 89 container.setUUID(_uuid); |
87 container.unconvert(_log); | 90 container.unconvert(_log); |
88 LogUpdateCodeSegment cs = new LogUpdateCodeSegment(); | 91 NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate(); |
89 cs.ods.update("local", "log", container); | 92 cs.ods.put("local", "log", container); |
90 | 93 |
91 } | 94 } |
92 | 95 |
93 @Override | 96 @Override |
94 public long getRevision() | 97 public long getRevision() |