/// <summary> /// Determine whether profile does not require any additional time to be satisfied. /// </summary> internal bool IsSatisfied(TraceContext context) { requireEmptyContext(); try { _actualContext = context; var protocol = requiresTicks(); return(protocol == null || protocol.ExpansionTicks == 0); } finally { _actualContext = null; } }
/// <summary> /// Determine whether profile can be further expanded. /// </summary> internal bool CanBeExpanded(TraceContext context) { requireEmptyContext(); try { _actualContext = context; var protocol = nextStepTicks(); return(protocol != null && protocol.ExpansionTicks > 0); } finally { _actualContext = null; } }
/// <summary> /// Expands on the smallest satisfiing length or expands for a single step if already satisfied. /// </summary> internal void Expand(TraceContext context) { requireEmptyContext(); try { _actualContext = context; var protocol = requiresTicks(); if (protocol == null || protocol.ExpansionTicks == 0) { protocol = nextStepTicks(); } applyExpansionTicks(protocol); } finally { _actualContext = null; } }