Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }