add flag crdt constants (#24208)
* add flag crdt constants * add scaladoc
This commit is contained in:
parent
7c94bc7df4
commit
804dc4b6ba
6 changed files with 27 additions and 15 deletions
|
|
@ -7,12 +7,24 @@ object Flag {
|
|||
/**
|
||||
* `Flag` that is initialized to `false`.
|
||||
*/
|
||||
val empty = new Flag(false)
|
||||
def apply(): Flag = empty
|
||||
val empty: Flag = new Flag(false)
|
||||
|
||||
/**
|
||||
* `Flag` that is initialized to `false`.
|
||||
*/
|
||||
val Disabled: Flag = empty
|
||||
|
||||
/**
|
||||
* `Flag` that is initialized to `true`.
|
||||
*/
|
||||
val Enabled: Flag = new Flag(true)
|
||||
|
||||
def apply(): Flag = Disabled
|
||||
|
||||
/**
|
||||
* Java API: `Flag` that is initialized to `false`.
|
||||
*/
|
||||
def create(): Flag = empty
|
||||
def create(): Flag = Disabled
|
||||
|
||||
// unapply from case class
|
||||
}
|
||||
|
|
@ -30,7 +42,7 @@ final case class Flag(enabled: Boolean) extends ReplicatedData with ReplicatedDa
|
|||
|
||||
def switchOn: Flag =
|
||||
if (enabled) this
|
||||
else Flag(true)
|
||||
else Flag.Enabled
|
||||
|
||||
override def merge(that: Flag): Flag =
|
||||
if (that.enabled) that
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ class ReplicatedDataSerializer(val system: ExtendedActorSystem)
|
|||
flagFromProto(rd.Flag.parseFrom(bytes))
|
||||
|
||||
def flagFromProto(flag: rd.Flag): Flag =
|
||||
Flag(flag.getEnabled)
|
||||
if (flag.getEnabled) Flag.Enabled else Flag.Disabled
|
||||
|
||||
def lwwRegisterToProto(lwwRegister: LWWRegister[_]): rd.LWWRegister =
|
||||
rd.LWWRegister.newBuilder().
|
||||
|
|
|
|||
|
|
@ -527,22 +527,22 @@ class ReplicatorSpec extends MultiNodeSpec(ReplicatorSpec) with STMultiNodeSpec
|
|||
|
||||
runOn(second) {
|
||||
replicator ! Subscribe(KeyH, changedProbe.ref)
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag(enabled = false)))
|
||||
changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag(enabled = false)))
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag.Disabled))
|
||||
changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag.Disabled))
|
||||
}
|
||||
|
||||
enterBarrier("update-h1")
|
||||
|
||||
runOn(first) {
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag(enabled = true)))
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("a" → Flag.Enabled))
|
||||
}
|
||||
|
||||
runOn(second) {
|
||||
changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag(enabled = true)))
|
||||
changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(Map("a" → Flag.Enabled))
|
||||
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("b" → Flag(enabled = true)))
|
||||
replicator ! Update(KeyH, ORMap.empty[String, Flag], writeTwo)(_ + ("b" → Flag.Enabled))
|
||||
changedProbe.expectMsgPF() { case c @ Changed(KeyH) ⇒ c.get(KeyH).entries } should be(
|
||||
Map("a" → Flag(enabled = true), "b" → Flag(enabled = true)))
|
||||
Map("a" → Flag.Enabled, "b" → Flag.Enabled))
|
||||
}
|
||||
|
||||
enterBarrierAfterTestStep()
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class FlagSpec extends WordSpec with Matchers {
|
|||
}
|
||||
|
||||
"have unapply extractor" in {
|
||||
val f1 = Flag.empty.switchOn
|
||||
val f1 = Flag.Disabled.switchOn
|
||||
val Flag(value1) = f1
|
||||
val value2: Boolean = value1
|
||||
Changed(FlagKey("key"))(f1) match {
|
||||
|
|
|
|||
|
|
@ -569,7 +569,7 @@ class ORMapSpec extends WordSpec with Matchers {
|
|||
|
||||
"work with deltas and updated for Flag elements type" in {
|
||||
val m1 = ORMap.empty.put(node1, "a", Flag(false))
|
||||
val m2 = m1.resetDelta.updated(node1, "a", Flag.empty)(_.switchOn)
|
||||
val m2 = m1.resetDelta.updated(node1, "a", Flag.Disabled)(_.switchOn)
|
||||
val m3 = ORMap().mergeDelta(m1.delta.get).mergeDelta(m2.delta.get)
|
||||
val Flag(d3) = m3.entries("a")
|
||||
d3 should be(true)
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class DistributedDataDocSpec extends AkkaSpec(DistributedDataDocSpec.config) {
|
|||
replicator ! Update(Set2Key, ORSet.empty[String], writeMajority)(_ + "hello")
|
||||
|
||||
val writeAll = WriteAll(timeout = 5.seconds)
|
||||
replicator ! Update(ActiveFlagKey, Flag.empty, writeAll)(_.switchOn)
|
||||
replicator ! Update(ActiveFlagKey, Flag.Disabled, writeAll)(_.switchOn)
|
||||
//#update
|
||||
|
||||
probe.expectMsgType[UpdateResponse[_]] match {
|
||||
|
|
@ -347,7 +347,7 @@ class DistributedDataDocSpec extends AkkaSpec(DistributedDataDocSpec.config) {
|
|||
"demonstrate Flag" in {
|
||||
def println(o: Any): Unit = ()
|
||||
//#flag
|
||||
val f0 = Flag.empty
|
||||
val f0 = Flag.Disabled
|
||||
val f1 = f0.switchOn
|
||||
println(f1.enabled)
|
||||
//#flag
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue