trait ORSet[T] extends Crdt with Set[T]

An Observed-Removed Set.

An Observed-Removed Set allows both the addition and removal of elements in a set. A removal can only be done if all of the additions that added the key have been seen by this node. This means that, for example if node 1 adds element A, and node 2 also adds element A, then node 1's addition is replicated to node 3, and node 3 deletes it before node 2's addition is replicated, then the element will still be in the map because node 2's addition had not yet been observed by node 3, and will cause the element to be re-added when node 3 receives it. However, if both additions had been replicated to node 3, then the element will be removed.

Care needs to be taken to ensure that the serialized value of elements in the set is stable. For example, if using protobufs, the serialized value of any maps contained in the protobuf is not stable, and can yield a different set of bytes for the same logically equal element. Hence maps should be avoided. Additionally, some changes in protobuf schemas which are backwards compatible from a protobuf perspective, such as changing from sint32 to int32, do result in different serialized bytes, and so must be avoided.

Linear Supertypes
Set[T], Collection[T], Iterable[T], Crdt, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ORSet
  2. Set
  3. Collection
  4. Iterable
  5. Crdt
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def add(arg0: T): Boolean
    Definition Classes
    Set → Collection
  2. abstract def addAll(arg0: Collection[_ <: T]): Boolean
    Definition Classes
    Set → Collection
  3. abstract def clear(): Unit
    Definition Classes
    Set → Collection
  4. abstract def contains(arg0: Any): Boolean
    Definition Classes
    Set → Collection
  5. abstract def containsAll(arg0: Collection[_]): Boolean
    Definition Classes
    Set → Collection
  6. abstract def isEmpty(): Boolean
    Definition Classes
    Set → Collection
  7. abstract def iterator(): Iterator[T]
    Definition Classes
    Set → Collection → Iterable
  8. abstract def remove(arg0: Any): Boolean
    Definition Classes
    Set → Collection
  9. abstract def removeAll(arg0: Collection[_]): Boolean
    Definition Classes
    Set → Collection
  10. abstract def retainAll(arg0: Collection[_]): Boolean
    Definition Classes
    Set → Collection
  11. abstract def size(): Int
    Definition Classes
    Set → Collection
  12. abstract def toArray[T](arg0: Array[T]): Array[T]
    Definition Classes
    Set → Collection
  13. abstract def toArray(): Array[AnyRef]
    Definition Classes
    Set → Collection

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def forEach(arg0: Consumer[_ >: T]): Unit
    Definition Classes
    Iterable
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. def parallelStream(): Stream[T]
    Definition Classes
    Collection
  17. def removeIf(arg0: Predicate[_ >: T]): Boolean
    Definition Classes
    Collection
  18. def spliterator(): Spliterator[T]
    Definition Classes
    Set → Collection → Iterable
  19. def stream(): Stream[T]
    Definition Classes
    Collection
  20. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Set[T]

Inherited from Collection[T]

Inherited from Iterable[T]

Inherited from Crdt

Inherited from AnyRef

Inherited from Any

Ungrouped