[#AbstractThresholdConditionChecker]
= AbstractThresholdConditionChecker
:mrdocs:

Abstract class that implements BIP9&hyphen;style threshold logic, and caches results&period;

== Synopsis

Declared in `&lt;versionbits&lowbar;impl&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class AbstractThresholdConditionChecker;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:AbstractThresholdConditionChecker/2destructor.adoc[`&#126;AbstractThresholdConditionChecker`] [.small]#[destructor]# [.small]#[virtual]#
| Defaulted virtual destructor&period;
| xref:AbstractThresholdConditionChecker/GetStateFor.adoc[`GetStateFor`] 
| Returns the state for pindex A based on parent pindexPrev B&period; Applies any state transition if conditions are present&period; Caches state from first block of period&period;
| xref:AbstractThresholdConditionChecker/GetStateSinceHeightFor.adoc[`GetStateSinceHeightFor`] 
| Returns the height since when the ThresholdState has started for pindex A based on parent pindexPrev B, all blocks of a period share the same
| xref:AbstractThresholdConditionChecker/GetStateStatisticsFor.adoc[`GetStateStatisticsFor`] 
| Returns the numerical statistics of an in&hyphen;progress BIP9 softfork in the period including pindex If provided, signalling&lowbar;blocks is set to true&sol;false based on whether each block in the period signalled
|===


== Protected Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:AbstractThresholdConditionChecker/BeginTime.adoc[`BeginTime`]  [.small]#[virtual]#
| Returns the timestamp at which the deployment may start&period;
| xref:AbstractThresholdConditionChecker/Condition.adoc[`Condition`]  [.small]#[virtual]#
| Returns whether the deployment&apos;s condition is met for a block&period;
| xref:AbstractThresholdConditionChecker/EndTime.adoc[`EndTime`]  [.small]#[virtual]#
| Returns the timestamp at which the deployment times out&period;
| xref:AbstractThresholdConditionChecker/MinActivationHeight.adoc[`MinActivationHeight`]  [.small]#[virtual]#
| Returns the earliest height at which the deployment may activate&period;
| xref:AbstractThresholdConditionChecker/Period.adoc[`Period`]  [.small]#[virtual]#
| Returns the number of blocks in a retarget period&period;
| xref:AbstractThresholdConditionChecker/Threshold.adoc[`Threshold`]  [.small]#[virtual]#
| Returns the number of signalling blocks required for lock&hyphen;in&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:VersionBitsConditionChecker.adoc[`VersionBitsConditionChecker`] 
| Class to implement versionbits logic&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
