Beispiel #1
0
        /// <summary>
        /// This method contains logic to be performed prior to a replication.
        /// It is called once before every replication. This method ensures that each contained model element has its StrictlyDoBeforeReplication method called.
        /// It also calls the DoBeforeReplication method which contains optional logic.
        /// </summary>
        internal void StrictlyOnReplicationStart()
        {
            ObserverState = ModelElementObserverState.REPLICATION_START;
            NotifyObservers(this);

            if (LengthOfWarmUp > 0)
            {
                GetExecutive.ScheduleEvent(GetExecutive.Time + LengthOfWarmUp, HandleEndWarmUp);
                ObserverState = ModelElementObserverState.WARMUP;
                NotifyObservers(this);
            }
            else
            {
                ObserverState = ModelElementObserverState.INITIALIZED;
                NotifyObservers(this);
                ObserverState = ModelElementObserverState.UPDATE;
            }

            OnReplicationStart();

            if (modelElements.Any())
            {
                foreach (ModelElementBase modelElement in modelElements)
                {
                    modelElement.StrictlyOnReplicationStart();
                }
            }
        }
Beispiel #2
0
 protected void ScheduleEndEvent(double time)
 {
     GetExecutive.ScheduleEndEvent(time);
 }
Beispiel #3
0
 protected void ScheduleEvent(double time, CSSLEventAction action)
 {
     GetExecutive.ScheduleEvent(time, action);
 }