public PtrMemoryWriter(RangeContainer container, MMU mmu, uint dest) { dest = BitConverter.ToUInt32(container.Memory, (int)dest); MMU = mmu; Dest = dest; }
public void CanCombine() { var list1 = new RangeContainer <uint>((a, b) => Math.Abs(a - b) == 1) { { 0, 100 }, { 200, 300 } }; var list2 = new RangeContainer <uint>((a, b) => Math.Abs(a - b) == 1) { { 90, 110 }, { 190, 310 } }; list1.Add(list2); Assert.AreEqual(2, list1.Count); Assert.True(list1.Any(x => x.Start == 0 && x.End == 110)); Assert.True(list1.Any(x => x.Start == 190 && x.End == 310)); }
private object WorkDay(HttpListenerContext context, string path) { var parameters = this.QueryParser(context.Request.Url.Query); if (!parameters.TryGetValue("date", out var dateString) || !DateTime.TryParse(dateString, out var day)) { context.Response.StatusCode = 400; return(new { status = "Bad Request: parameter 'date' was missing or malformed" }); } int blur = 35; if (parameters.TryGetValue("blur", out string blurValue)) { if (byte.TryParse(blurValue, out byte blurParam)) { blur = blurParam; } else { context.Response.StatusCode = 400; return(new { status = "Bad Request: parameter 'blur' was malformed" }); } } var acts = ActivityManager.GetSharedMonthActivities((short)day.Year, (byte)day.Month, "*", blur); var dayActs = acts.Values.Where(x => x.Days.ContainsKey((byte)day.Day)).Select(x => x.Days[(byte)day.Day]).ToList(); var xx = dayActs.SelectMany(x => x.RangesWhere(y => y.WasActive && y.Classification == WorkPlayType.Work)); var combined = RangeContainer.UintRangeContainer(); combined.Add(xx); var totalTime = SecondToTime((uint)combined.Sum(x => x.End - x.Start + 1)); return(new { date = day.ToString("yyyy-MM-dd"), totalTime, dayNumber = day.Day, work = combined.Select(x => new[] { SecondToTime(x.Start), SecondToTime(x.End) }) }); }
public void FormatString(ProgramReader reader) { Pointer ptr = new Pointer(Processor.MMU) { Value = reader.NextPtr() }; string str = ptr.GetString(); Regex r = new Regex(@"\{%[d,s,f]}"); MatchCollection matches = r.Matches(str); foreach (Match match in matches) { object obj = null; if (match.Value == "{%d}") { obj = reader.NextInt(); } if (match.Value == "{%f}") { obj = reader.NextFloat(); } if (match.Value == "{%s}") { obj = new Pointer(Processor.MMU) { Value = reader.NextPtr() }.GetString(); } str = ReplaceFirst(str, match.Value, obj.ToString()); } RangeContainer c = Processor.MMU.Alloc(str.Length + 1); c.Write(str); Processor.Registers.SetReturnCarry(c.Start); }
public PtrMemoryReader(RangeContainer container, MMU mmu, uint ptr, int size) { ptr = BitConverter.ToUInt32(container.Memory, (int)ptr); Data = mmu.ReadBytes(ptr, size); }
public AddressMemoryReader(RangeContainer container, uint ptr, int size) { Data = new byte[size]; Array.Copy(container.Memory, ptr, Data, 0, size); }
public AddressMemoryWriter(RangeContainer container, uint dest) { Container = container; Dest = dest; }