comparison src/alice/jungle/transaction/NetworkTransactionManager.java @ 34:bf696a6334b2

add LogUpdateCodeSegment
author one
date Tue, 02 Jul 2013 11:52:32 +0900
parents 2f1879e0acec
children 054dc02c117d
comparison
equal deleted inserted replaced
33:afccf06c4063 34:bf696a6334b2
1 package alice.jungle.transaction; 1 package alice.jungle.transaction;
2 2
3 import java.io.IOException;
3 import java.util.Iterator; 4 import java.util.Iterator;
5
6 import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
4 7
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
61 Reservation reservation = repository.makeReservation(tip, newContext); 64 Reservation reservation = repository.makeReservation(tip, newContext);
62 if(reservation == null) { 65 if(reservation == null) {
63 return DefaultEither.newA((Error)new DefaultError()); 66 return DefaultEither.newA((Error)new DefaultError());
64 } 67 }
65 Result r = writer.write(list); 68 Result r = writer.write(list);
66 if(r == Result.SUCCESS){ 69 if(r != Result.SUCCESS) {
67 reservation.confirm(); 70 return DefaultEither.newA((Error)new DefaultError());
68 TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid);
69 return DefaultEither.newB(txManager);
70 } 71 }
71 return DefaultEither.newA((Error)new DefaultError()); 72 try {
73 updateDataSegment(uuid, treeName, list);
74 } catch (IOException e) {
75 e.printStackTrace();
76 }
77 reservation.confirm();
78 TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid);
79 return DefaultEither.newB(txManager);
80 }
81
82 private void updateDataSegment(String _uuid, String _treeName, Iterable<TreeOperation> _log) throws IOException {
83 DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
84 container.setTreeName(_treeName);
85 container.setUUID(_uuid);
86 container.unconvert(_log);
87
72 } 88 }
73 89
74 @Override 90 @Override
75 public long getRevision() 91 public long getRevision()
76 { 92 {