Example #1
0
        /// <summary>
        /// Check whether this entry is valid up to the passed validity level.
        /// </summary>
        /// <returns>
        ///   <c>true</c> if this instance is valid; otherwise, <c>false</c>.
        /// </returns>
        public bool IsValid(HeaderValidityStatuses upTo = HeaderValidityStatuses.ValidTransactions)
        {
            // if some failed flag is on, it's not valid.
            if (IsInvalid())
            {
                return(false);
            }

            return((_status & (int)HeaderValidityStatuses.ValidMask) >= (int)upTo);
        }
Example #2
0
        //! Raise the validity level of this block index entry.
        //! Returns true if the validity was changed.
        bool RaiseValidity(HeaderValidityStatuses upTo)
        {
            if ((_status & (int)HeaderValidityStatuses.FailedMask) != 0)
            {
                return(false);
            }

            if ((_status & (int)HeaderValidityStatuses.ValidMask) < (int)upTo)
            {
                _status = (_status & ~(int)HeaderValidityStatuses.ValidMask) | (int)upTo;
                return(true);
            }
            return(false);
        }