Click or drag to resize

SegmentPropagator Class

The abstract type for a segment's propagator. This will perform the propagation and produce SegmentResults.
Inheritance Hierarchy

Namespace:  AGI.Foundation.SegmentPropagation
Assembly:  AGI.Foundation.Models (in AGI.Foundation.Models.dll) Version: 20.3.405.0 (20.3.405.0)
public abstract class SegmentPropagator : IThreadAware, 
	ICloneWithContext, IDisposable

The SegmentPropagator type exposes the following members.

Protected methodSegmentPropagator(SegmentPropagator, CopyContext)
Initializes a new instance as a copy of an existing instance.
Protected methodSegmentPropagator(SegmentDefinition, SegmentDefinition, EvaluatorGroup)
Initializes a new instance.
Public propertyAdapters
Gets a list of the StateElementAdapters that this segment can use in its propagation.
Public propertyIdentifier
Gets the definition that created this propagator. This is to only be used as an identifier.
Public propertyIsThreadSafe
Gets a value indicating whether the methods on this instance are safe to call from multiple threads simultaneously.
Public propertyName
Gets the name of this SegmentPropagator.
Public propertyOriginalConfiguration
Gets or sets the original configuration for this segment. This must be set when the propagator is constructed. This should be ignored during propagation if a configuration is passed into the PropagateSegment(SegmentListResults, SegmentConfiguration, ITrackCalculationProgress) method.
Public propertyPropagationDirection
Gets the initial direction of propagation.
Public propertyStateForNextSegmentBehavior
Gets which state should be passed to the next SegmentPropagator.
Public methodApplyResults
This method sets propagator's state via the input results. For SegmentPropagators that have state, there may be times when that state should be manually set (sometimes for performance considerations, when the propagator will be called multiple times and it should start from where it left off).
Public methodClone
Clones this object using the specified context.
Protected methodDefaultStateAdaptation
Performs the default adaptation of the elements in the initialState into the finalState. Note that elements that do not exist in both states will not be adapted.
Public methodDispose
Releases any resources associated with this instance.
Protected methodDispose(Boolean)
Releases any resources associated with this instance.
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPropagate
Propagates the segment assuming no initial state is passed in. Some segments do not require an initial state to be passed in. However other segments do; such types should override this method and provide a detailed error message in a proper Exception in such a case.
Public methodPropagate(ITimeBasedState)
Propagates the segment starting from the initialState.
Public methodPropagate(SegmentListResults)
Propagates the segment.
Public methodPropagate(ITimeBasedState, ITrackCalculationProgress)
Propagates the segment starting from the initialState.
Public methodPropagate(ITimeBasedState, SegmentListResults)
Propagates the segment starting from the initialState.
Public methodPropagate(SegmentConfiguration, ITrackCalculationProgress)
Propagates the segment.
Public methodPropagate(SegmentListResults, SegmentConfiguration, ITrackCalculationProgress)
Propagates the segment with the given parameters.
Protected methodPropagateSegment
The method that actually propagates the segment. This should never be called directly; instead call whatever Propagate method most appropriate to your problem.
Public methodPropagateTo

Propagates a segment to the time or independent variable specified in the dateToPropagateTo. This method is needed to assist the case when segments might overlap. If a later segment realizes that it needs to find a different final state from this SegmentPropagator, this method should be used to find that new final state.

Consider calling PropagateToAssumingTimeBasedStates(JulianDate, SegmentResults, SegmentListResults) instead of this method directly.

Public methodToString
Returns a string that represents the current object.
(Overrides ObjectToString.)
Public methodStatic memberUpdateProgressTrackerAndReturnIfCanceled
A helper method to handle the progress tracker that the various Propagate methods have. Because how long propagation will take cannot be known ahead of time, the progress is reported as -1. You can however use the progress tracker to cancel propagation.
Public eventPropagationFinishedEvent
An event that gets fired when propagation finishes. This event gets fired off in this base type; it should not be run in the PropagateSegment(SegmentListResults, SegmentConfiguration, ITrackCalculationProgress) method.

There are two types of propagation that need to be supported. There is the normal PropagateSegment(SegmentListResults, SegmentConfiguration, ITrackCalculationProgress) call that will start from where the previous segment stopped. There is also the PropagateTo(SegmentResults, JulianDate) method that is needed for when a segment propagated after this one needs to back up for some reason. Propagation forwards and backwards must be handled as well.

See the Segments topic for more details about using segments.

See Also