format source with scalafmt
This commit is contained in:
parent
0f40491d42
commit
ce404e4f53
1669 changed files with 43208 additions and 35404 deletions
|
|
@ -44,6 +44,7 @@ object VersionVector {
|
|||
case object Before extends Ordering
|
||||
case object Same extends Ordering
|
||||
case object Concurrent extends Ordering
|
||||
|
||||
/**
|
||||
* Marker to ensure that we do a full order comparison instead of bailing out early.
|
||||
*/
|
||||
|
|
@ -96,8 +97,7 @@ object VersionVector {
|
|||
* This class is immutable, i.e. "modifying" methods return a new instance.
|
||||
*/
|
||||
@SerialVersionUID(1L)
|
||||
sealed abstract class VersionVector
|
||||
extends ReplicatedData with ReplicatedDataSerialization with RemovedNodePruning {
|
||||
sealed abstract class VersionVector extends ReplicatedData with ReplicatedDataSerialization with RemovedNodePruning {
|
||||
|
||||
type T = VersionVector
|
||||
|
||||
|
|
@ -182,18 +182,23 @@ sealed abstract class VersionVector
|
|||
private final def compareOnlyTo(that: VersionVector, order: Ordering): Ordering = {
|
||||
def nextOrElse[A](iter: Iterator[A], default: A): A = if (iter.hasNext) iter.next() else default
|
||||
|
||||
def compare(i1: Iterator[(UniqueAddress, Long)], i2: Iterator[(UniqueAddress, Long)], requestedOrder: Ordering): Ordering = {
|
||||
def compare(i1: Iterator[(UniqueAddress, Long)],
|
||||
i2: Iterator[(UniqueAddress, Long)],
|
||||
requestedOrder: Ordering): Ordering = {
|
||||
@tailrec
|
||||
def compareNext(nt1: (UniqueAddress, Long), nt2: (UniqueAddress, Long), currentOrder: Ordering): Ordering =
|
||||
if ((requestedOrder ne FullOrder) && (currentOrder ne Same) && (currentOrder ne requestedOrder)) currentOrder
|
||||
else if ((nt1 eq cmpEndMarker) && (nt2 eq cmpEndMarker)) currentOrder
|
||||
// i1 is empty but i2 is not, so i1 can only be Before
|
||||
else if (nt1 eq cmpEndMarker) { if (currentOrder eq After) Concurrent else Before }
|
||||
else if (nt1 eq cmpEndMarker) {
|
||||
if (currentOrder eq After) Concurrent else Before
|
||||
}
|
||||
// i2 is empty but i1 is not, so i1 can only be After
|
||||
else if (nt2 eq cmpEndMarker) { if (currentOrder eq Before) Concurrent else After }
|
||||
else {
|
||||
else if (nt2 eq cmpEndMarker) {
|
||||
if (currentOrder eq Before) Concurrent else After
|
||||
} else {
|
||||
// compare the nodes
|
||||
val nc = nt1._1 compareTo nt2._1
|
||||
val nc = nt1._1.compareTo(nt2._1)
|
||||
if (nc == 0) {
|
||||
// both nodes exist compare the timestamps
|
||||
// same timestamp so just continue with the next nodes
|
||||
|
|
@ -347,22 +352,23 @@ final case class ManyVersionVector(versions: TreeMap[UniqueAddress, Long]) exten
|
|||
override def merge(that: VersionVector): VersionVector = {
|
||||
if (that.isEmpty) this
|
||||
else if (this.isEmpty) that
|
||||
else that match {
|
||||
case ManyVersionVector(vs2) =>
|
||||
var mergedVersions = vs2
|
||||
for ((node, time) <- versions) {
|
||||
val mergedVersionsCurrentTime = mergedVersions.getOrElse(node, Timestamp.Zero)
|
||||
if (time > mergedVersionsCurrentTime)
|
||||
mergedVersions = mergedVersions.updated(node, time)
|
||||
}
|
||||
VersionVector(mergedVersions)
|
||||
case OneVersionVector(n2, v2) =>
|
||||
val v1 = versions.getOrElse(n2, Timestamp.Zero)
|
||||
val mergedVersions =
|
||||
if (v1 >= v2) versions
|
||||
else versions.updated(n2, v2)
|
||||
VersionVector(mergedVersions)
|
||||
}
|
||||
else
|
||||
that match {
|
||||
case ManyVersionVector(vs2) =>
|
||||
var mergedVersions = vs2
|
||||
for ((node, time) <- versions) {
|
||||
val mergedVersionsCurrentTime = mergedVersions.getOrElse(node, Timestamp.Zero)
|
||||
if (time > mergedVersionsCurrentTime)
|
||||
mergedVersions = mergedVersions.updated(node, time)
|
||||
}
|
||||
VersionVector(mergedVersions)
|
||||
case OneVersionVector(n2, v2) =>
|
||||
val v1 = versions.getOrElse(n2, Timestamp.Zero)
|
||||
val mergedVersions =
|
||||
if (v1 >= v2) versions
|
||||
else versions.updated(n2, v2)
|
||||
VersionVector(mergedVersions)
|
||||
}
|
||||
}
|
||||
|
||||
override def modifiedByNodes: Set[UniqueAddress] =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue