/// <summary> /// Creates an instance of an ORMultiDictionary scoped to a current cluster. /// </summary> /// <typeparam name="TKey">TBD</typeparam> /// <typeparam name="TVal">TBD</typeparam> /// <param name="cluster">TBD</param> /// <param name="dictionary">TBD</param> /// <returns>TBD</returns> public static LocalORMultiDictionary <TKey, TVal> ORMultiDictionary <TKey, TVal>(this Cluster.Cluster cluster, ORMultiDictionary <TKey, TVal> dictionary) => new LocalORMultiDictionary <TKey, TVal>(cluster, dictionary);
/// <summary> /// TBD /// </summary> /// <param name="cluster">TBD</param> /// <param name="crdt">TBD</param> public LocalORMultiDictionary(Cluster.Cluster cluster, ORMultiDictionary <TKey, TVal> crdt) : this(cluster.SelfUniqueAddress, crdt) { }
/// <summary> /// TBD /// </summary> /// <param name="dictionary">TBD</param> public Surrogate(ORMultiDictionary <TKey, TVal> dictionary) { _dictionary = dictionary; }
/// <summary> /// TBD /// </summary> /// <param name="currentNode">TBD</param> /// <param name="crdt">TBD</param> internal LocalORMultiDictionary(UniqueAddress currentNode, ORMultiDictionary <TKey, TVal> crdt) : this() { _currentNode = currentNode; _crdt = crdt; }
/// <summary> /// Merges data from provided <see cref="ORMultiDictionary{TKey,TValue}"/> into current CRDT, /// creating new immutable instance in a result. /// </summary> /// <param name="dictionary">TBD</param> /// <returns>TBD</returns> public LocalORMultiDictionary <TKey, TVal> Merge(ORMultiDictionary <TKey, TVal> dictionary) => new LocalORMultiDictionary <TKey, TVal>(_currentNode, _crdt.Merge(dictionary));