Beispiel #1
0
        public static TLink CreateStack <TLink>(this ILinks <TLink> links, TLink stackMarker)
        {
            var stackPoint = links.CreatePoint();
            var stack      = links.Update(stackPoint, stackMarker, stackPoint);

            return(stack);
        }
        // TODO: Реализовать компактификацию при чтении
        //public bool EnforceSingleSequenceVersionOnRead; 
        //public bool UseRequestMarker;
        //public bool StoreRequestResults;

        public void InitOptions(ILinks<ulong> links)
        {
            if (UseSequenceMarker)
            {
                if (SequenceMarkerLink == Constants.Null)
                    SequenceMarkerLink = links.CreatePoint();
                else
                {
                    if (!links.Exists(SequenceMarkerLink))
                    {
                        var link = links.CreatePoint();
                        if(link != SequenceMarkerLink)
                            throw new Exception("Cannot recreate sequence marker link.");
                    }
                }
            }
        }
Beispiel #3
0
 private TLinkAddress GetOrCreateMeaningRoot(TLinkAddress meaningRootIndex) => _links.Exists(meaningRootIndex) ? meaningRootIndex : _links.CreatePoint();
Beispiel #4
0
 private static void SetPoints(ILinks<ulong> links, ulong[] digits)
 {
     // Создадим точки в графе для каждой цифры
     for (int i = 0; i < digits.Length; i++)
         digits[i] = links.CreatePoint();
 }