//public IList<Element> ToList() //{ // Console.WriteLine("ElementCollection:ToList"); // var list = new List<Element>(); // foreach (var singles in _singles) // list.Add(singles); // foreach (var multiple in _multiples) // list.Add(multiple.Element); // return list; //} public void DeHibernate(SliceCollection slices) { Console.WriteLine("ElementCollection:DeHibernate"); if (_singles.Count > 0) foreach (var single in _singles) { var time = BitConverter.ToUInt64(single.Metadata, 0); if (time < EngineSettings.MaxTimeslicesTime) throw new Exception("paranoia"); var newTime = (ulong)(time -= EngineSettings.MaxTimeslicesTime); if (newTime < EngineSettings.MaxTimeslicesTime) { _singles.Remove(single); slices.Schedule(single, newTime); } } if (_multiples.Count > 0) foreach (var multiple in _multiples) { var time = BitConverter.ToUInt64(multiple.Metadata, 0); if (time < EngineSettings.MaxTimeslicesTime) throw new Exception("paranoia"); var newTime = (ulong)(time -= EngineSettings.MaxTimeslicesTime); if (newTime < EngineSettings.MaxTimeslicesTime) { _multiples.Remove(multiple); slices.Schedule(multiple.Element, newTime); } } }
public void DeHibernate(SliceCollection slices) { Console.WriteLine("HibernateCollection:DeHibernate"); var hibernate = _hibernates[0]; hibernate.Elements.DeHibernate(slices); }
static void Main(string[] args) { Time.Element e = new Time.Element { ScheduleStyle = ElementScheduleStyle.Multiple, A = 5 }; var s = new SliceCollection(); s.Schedule(e, 10); s.MoveNextSlice(); s.Dispose(); Console.WriteLine("Done."); }
//public IList<Element> ToList() //{ // Console.WriteLine("ElementCollection:ToList"); // var list = new List<Element>(); // foreach (var singles in _singles) // list.Add(singles); // foreach (var multiple in _multiples) // list.Add(multiple.Element); // return list; //} public void DeHibernate(SliceCollection slices) { Console.WriteLine("ElementCollection:DeHibernate"); if (_singles.Count > 0) { foreach (var single in _singles) { var time = BitConverter.ToUInt64(single.Metadata, 0); if (time < EngineSettings.MaxTimeslicesTime) { throw new Exception("paranoia"); } var newTime = (ulong)(time -= EngineSettings.MaxTimeslicesTime); if (newTime < EngineSettings.MaxTimeslicesTime) { _singles.Remove(single); slices.Schedule(single, newTime); } } } if (_multiples.Count > 0) { foreach (var multiple in _multiples) { var time = BitConverter.ToUInt64(multiple.Metadata, 0); if (time < EngineSettings.MaxTimeslicesTime) { throw new Exception("paranoia"); } var newTime = (ulong)(time -= EngineSettings.MaxTimeslicesTime); if (newTime < EngineSettings.MaxTimeslicesTime) { _multiples.Remove(multiple); slices.Schedule(multiple.Element, newTime); } } } }