コード例 #1
0
        public VersionVector Join(Siblings s1)
        {
            Ensure.That(s1, "s1").IsNotNull();

            var ids = s1.Ids().Select(i => new CausalEvent(i, s1.MaxDot(i)));

            return(new VersionVector(ids));
        }
コード例 #2
0
        /// <summary>
        /// Generates a new clock.
        /// </summary>
        public DottedVersionVector Event(VersionVector context, Siblings s, string i)
        {
            Ensure.That(s, "s").IsNotNull();
            Ensure.That(context, "context").IsNotNull();
            Ensure.That(i, "i").IsNotNullOrEmpty();

            long maxDot           = s.MaxDot(i);
            long maxCausalHistory = context[i];

            long maxCounter = Math.Max(maxDot, maxCausalHistory);
            var  dot        = new CausalEvent(i, maxCounter + 1);

            return(new DottedVersionVector(dot, context));
        }