annotate src/treecms/proto/simple/SimpleDecNodeID.java @ 47:5b36891db5ca

finished implementing cassandra monotonic tree
author suika6039
date Sat, 29 Jan 2011 03:05:20 +0900
parents 347feeca4728
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
1 package treecms.proto.simple;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
2
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
3 import java.util.UUID;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
4 import java.util.concurrent.atomic.AtomicLong;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
5
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
6 import treecms.proto.api.NodeID;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
7 import treecms.proto.id.DecrementalNodeID;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
8
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
9 public class SimpleDecNodeID extends DecrementalNodeID
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
10 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
11 private String m_uuid;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
12 private AtomicLong m_tip;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
13 private long m_version;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
14
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
15 public SimpleDecNodeID()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
16 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
17 m_uuid = UUID.randomUUID().toString();
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
18 m_tip = new AtomicLong();
45
347feeca4728 added CassDecNodeID
shoshi
parents: 43
diff changeset
19 m_tip.set(START_VALUE);
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
20
47
5b36891db5ca finished implementing cassandra monotonic tree
suika6039
parents: 45
diff changeset
21 m_version = START_VALUE;
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
22 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
23
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
24 private SimpleDecNodeID(String _uuid,AtomicLong _tip,boolean _doUpdate)
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
25 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
26 m_uuid = _uuid;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
27 m_tip = _tip;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
28
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
29 if(_doUpdate){
47
5b36891db5ca finished implementing cassandra monotonic tree
suika6039
parents: 45
diff changeset
30 m_version = m_tip.decrementAndGet();
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
31 return;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
32 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
33
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
34 m_version = m_tip.get();
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
35 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
36
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
37 @Override
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
38 public NodeID create()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
39 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
40 return new SimpleDecNodeID();
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
41 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
43 @Override
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
44 public NodeID getTip()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
45 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
46 return new SimpleDecNodeID(m_uuid,m_tip,false);
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
47 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
48
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
49 @Override
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
50 public String getUUID()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
51 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
52 return m_uuid;
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
53 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
54
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
55 @Override
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
56 public String getVersion()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
57 {
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
58 return Long.toString(m_version);
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
59 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
60
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
61 @Override
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
62 public NodeID update()
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
63 {
47
5b36891db5ca finished implementing cassandra monotonic tree
suika6039
parents: 45
diff changeset
64 return new SimpleDecNodeID(m_uuid,m_tip,true);
42
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
65 }
ba136d01f304 added DecrementalNodeID,SimpleDecNodeID
shoshi
parents:
diff changeset
66 }