/// <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); }
//! 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); }