示例#1
0
 static void SetTimeProvider(IMeasurements m, ITimeMeasureProvider provider, IDictionary <ITimeMeasureConsumer, IMeasurement> dictionary)
 {
     if (m is ITimeMeasureConsumer)
     {
         ITimeMeasureConsumer mc = m as ITimeMeasureConsumer;
         if (dictionary.ContainsKey(mc))
         {
             if (mc.Time != provider.TimeMeasurement)
             {
                 dictionary[mc] = mc.Time;
                 mc.Time        = provider.TimeMeasurement;
             }
         }
         else
         {
             dictionary[mc] = mc.Time;
             mc.Time        = provider.TimeMeasurement;
         }
     }
     if (m is IDataConsumer)
     {
         IDataConsumer dc = m as IDataConsumer;
         SetTimeProvider(dc, provider, dictionary);
     }
     if (m is MeasurementsWrapper)
     {
         MeasurementsWrapper mw = m as MeasurementsWrapper;
         int n = mw.Count;
         for (int i = 0; i < n; i++)
         {
             SetTimeProvider(mw[i], provider, dictionary);
         }
     }
 }
示例#2
0
 void Add(object o)
 {
     if (o == null)
     {
         return;
     }
     if (o is IDataConsumer)
     {
         IDataConsumer c = o as IDataConsumer;
         if (!consumers.Contains(c))
         {
             consumers.Add(c);
         }
     }
     if (o is IUpdatableObject)
     {
         IUpdatableObject u = o as IUpdatableObject;
         if (!upd.Contains(u))
         {
             upd.Add(u);
         }
     }
     if (o is IDynamical)
     {
         IDynamical d = o as IDynamical;
         if (!dyn.Contains(d))
         {
             dyn.Add(d);
         }
     }
     if (o is IStep)
     {
         IStep s = o as IStep;
         s.Step = 0;
         if (!steps.Contains(s))
         {
             steps.Add(s);
         }
     }
     if (o is IChildrenObject)
     {
         IChildrenObject     ch   = o as IChildrenObject;
         IAssociatedObject[] objs = ch.Children;
         foreach (object obj in objs)
         {
             Add(obj);
         }
     }
     if (o is MeasurementsWrapper)
     {
         MeasurementsWrapper mw = o as MeasurementsWrapper;
         int n = mw.Count;
         for (int i = 0; i < n; i++)
         {
             Add(mw[i]);
         }
     }
 }