public void LoadBlocks(MyNode holder, bool recursive, string path)
        {
            MyMemoryBlockSerializer serializer = new MyMemoryBlockSerializer();

            MemoryAction action = delegate(MyAbstractMemoryBlock memoryBlock)
            {
                if (memoryBlock.Persistable)
                {
                    serializer.LoadBlock(memoryBlock, path);
                }
            };

            IterateBlocks(holder, true, action);
        }
        // TODO: remove?
        private IDictionary <string, MyAbstractMemoryBlock> CollectMemoryBlocks()
        {
            var memBlocks = new Dictionary <string, MyAbstractMemoryBlock>();

            foreach (var memoryBlockList in m_memoryBlocks.Values)
            {
                foreach (MyAbstractMemoryBlock memoryBlock in memoryBlockList)
                {
                    string memBlockName = MyMemoryBlockSerializer.GetUniqueName(memoryBlock);

                    if (!memBlocks.ContainsKey(memBlockName))
                    {
                        memBlocks.Add(memBlockName, memoryBlock);
                    }
                }
            }

            return(memBlocks);
        }
示例#3
0
        private void SaveBlocks(IEnumerable<MyWorkingNode> nodeList)
        {
            MyMemoryBlockSerializer serializer = new MyMemoryBlockSerializer();

            var isFirst = true;
            foreach (MyWorkingNode node in nodeList)
            {
                if (SaveAllNodesData || node.SaveOnStop)
                {
                    foreach (MyAbstractMemoryBlock mb in MyMemoryManager.Instance.GetBlocks(node))
                    {
                        if (mb.Persistable)
                        {
                            if (isFirst)
                                MyLog.INFO.WriteLine("Saving state to: " + MyMemoryBlockSerializer.GetTempStorage(m_project));

                            isFirst = false;
                            serializer.SaveBlock(mb);
                        }
                    }
                }
            }
        }
示例#4
0
        private void LoadBlocks(IEnumerable<MyWorkingNode> nodeList)
        {
            MyMemoryBlockSerializer serializer = new MyMemoryBlockSerializer();

            var isFirst = true;
            foreach (MyWorkingNode node in nodeList)
            {
                if (LoadAllNodesData || node.LoadOnStart)
                {
                    foreach (MyAbstractMemoryBlock mb in MyMemoryManager.Instance.GetBlocks(node))
                    {
                        if (mb.Persistable)
                        {
                            if (isFirst)
                                MyLog.INFO.WriteLine("Loading state from: " + MyMemoryBlockSerializer.GetTempStorage(m_project));

                            isFirst = false;
                            serializer.LoadBlock(mb, GlobalDataFolder);
                        }
                    }
                }
            }
        }
示例#5
0
        private void SaveBlocks(List<MyWorkingNode> nodeList)
        {
            MyMemoryBlockSerializer serializer = new MyMemoryBlockSerializer();

            for (int j = 0; j < nodeList.Count; j++)
            {
                MyWorkingNode node = nodeList[j];

                if (SaveAllNodesData || node.SaveOnStop)
                {
                    foreach (MyAbstractMemoryBlock mb in MyMemoryManager.Instance.GetBlocks(node))
                    {
                        if (mb.Persistable)
                        {
                            serializer.SaveBlock(mb);
                        }
                    }
                }
            }
        }
示例#6
0
        private void LoadBlocks(List<MyWorkingNode> nodeList)
        {
            MyMemoryBlockSerializer serializer = new MyMemoryBlockSerializer();

            for (int j = 0; j < nodeList.Count; j++)
            {
                MyWorkingNode node = nodeList[j];

                if (LoadAllNodesData || node.LoadOnStart)
                {
                    foreach (MyAbstractMemoryBlock mb in MyMemoryManager.Instance.GetBlocks(node))
                    {
                        if (mb.Persistable)
                        {
                            serializer.LoadBlock(mb, GlobalDataFolder);
                        }
                    }
                }
            }
        }