Click or drag to resize

SegmentPropagator Class

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

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

The SegmentPropagator type exposes the following members.

Constructors
  NameDescription
Protected methodSegmentPropagator(SegmentPropagator, CopyContext)
Initializes a new instance as a copy of an existing instance.
Protected methodSegmentPropagator(SegmentDefinition, SegmentDefinition, EvaluatorGroup)
Initializes a new instance.
Top
Properties
  NameDescription
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; if you are doing anything else with it besides using it as an identifier, that is probably a bug.
Public propertyIsThreadSafe
Gets a value indicating if the methods on this instance are safe to call from multiple threads simultaneously.
Public propertyName
Gets the name of this SegmentPropagator.
Public propertyOriginalConfiguration
Gets the original configuration for this segment to use. This must get set when this 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.
Top
Methods
  NameDescription
Public methodApplyResults
For SegmentPropagators that have state, there may be times when that state should be manually set on a propagator (sometimes for performance reasons, when the propagator will be called multiple times and it should start from where it left off). This method will manually set that state, if needed.
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 the default hash function.
(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 the Propagate method that takes the desired parameters.
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 segments 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.
Top
Events
  NameDescription
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.
Top
Remarks

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 detail on how to use segments.

See Also