Use better sort order of members. See #2133
This commit is contained in:
parent
3aba8dc424
commit
b569869b61
2 changed files with 41 additions and 1 deletions
|
|
@ -100,7 +100,17 @@ class Member(val address: Address, val status: MemberStatus) extends ClusterMess
|
|||
object Member {
|
||||
import MemberStatus._
|
||||
|
||||
implicit val ordering = Ordering.fromLessThan[Member](_.address.toString < _.address.toString)
|
||||
implicit val addressOrdering: Ordering[Address] = Ordering.fromLessThan[Address] { (a, b) ⇒
|
||||
if (a.protocol < b.protocol) true
|
||||
else if (a.system < b.system) true
|
||||
else if (a.host.getOrElse("") < b.host.getOrElse("")) true
|
||||
else if (a.port.getOrElse(0) < b.port.getOrElse(0)) true
|
||||
else false
|
||||
}
|
||||
|
||||
implicit val ordering: Ordering[Member] = new Ordering[Member] {
|
||||
def compare(x: Member, y: Member) = addressOrdering.compare(x.address, y.address)
|
||||
}
|
||||
|
||||
def apply(address: Address, status: MemberStatus): Member = new Member(address, status)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue