private static void putInStack(ScrollableCanvas scrollableCanvas, Dictionary <long, FixedSizedStack <byte[]> > stack) { long id = scrollableCanvas.id; Stream stream = new MemoryStream(); new BinaryFormatter().Serialize(stream, scrollableCanvas); if (stack.ContainsKey(id)) { FixedSizedStack <byte[]> fsq = stack[id]; fsq.Push(StreamUtils.ReadFromStream(stream)); } else { FixedSizedStack <byte[]> fsq = new FixedSizedStack <byte[]>(); fsq.Push(StreamUtils.ReadFromStream(stream)); stack.Add(id, fsq); } }
public static ScrollableCanvas proceed(long canvasId, Dictionary <long, FixedSizedStack <byte[]> > stack) { if (stack.ContainsKey(canvasId)) { FixedSizedStack <byte[]> stck = stack[canvasId]; if (stck.HasElements()) { byte[] canvas = stck.Pop(); Stream stream = StreamUtils.readFromByteArray(canvas); return((ScrollableCanvas) new BinaryFormatter().Deserialize(stream)); } else { return(null); } } return(null); }