Exemplo n.º 1
0
    public void AddSnapshot(PackedMemorySnapshot packed)
    {
        TrackerMode_Base curMode = GetCurrentMode();

        if (curMode == null)
        {
            return;
        }

        var snapshotInfo = new MemSnapshotInfo();

        if (!snapshotInfo.AcceptSnapshot(packed))
        {
            return;
        }

        curMode.AddSnapshot(snapshotInfo);

        if (AutoSaveOnSnapshot)
        {
            if (!curMode.SaveSessionInfo(packed, snapshotInfo.Unpacked))
            {
                Debug.LogErrorFormat("Save Session Info Failed!");
            }
        }
    }
Exemplo n.º 2
0
    public void AddSnapshot(PackedMemorySnapshot packed)
    {
        try
        {
            TrackerMode_Base curMode = GetCurrentMode();
            if (curMode == null)
            {
                Debug.LogErrorFormat("AddSnapshot() failed. (invalid mode: {0})", curMode);
                return;
            }

            Debug.Log("saving snapshot...");
            if (AutoSaveOnSnapshot)
            {
                if (!curMode.SaveSessionInfo(packed))
                {
                    Debug.LogErrorFormat("Save Session Info Failed!");
                }
            }

            Debug.Log("accepting snapshot...");
            var snapshotInfo = new MemSnapshotInfo();
            if (!snapshotInfo.AcceptSnapshot(packed))
            {
                Debug.LogError("AcceptSnapshot() failed.");
                return;
            }

            Debug.Log("appending snapshot...");
            curMode.AddSnapshot(snapshotInfo);

            //Debug.Log("saving snapshot...");
            if (AutoSaveOnSnapshot)
            {
                if (!curMode.SaveSessionJson(snapshotInfo.Unpacked))
                {
                    Debug.LogErrorFormat("Save Session Json Failed!");
                }
            }

            Debug.Log("appending snapshot. (done)");
        }
        catch (Exception ex)
        {
            Debug.LogException(ex);
        }
    }
Exemplo n.º 3
0
    public void LoadFile()
    {
        string pathName = EditorUtility.OpenFilePanel("Load Snapshot File", MemUtil.SnapshotsDir, "");

        if (string.IsNullOrEmpty(pathName))
        {
            return;
        }

        object packed = null;

        try
        {
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            var fileName = pathName;
            if (fileName.EndsWith(".memsnap"))
            {
                using (Stream stream = File.Open(fileName, FileMode.Open))
                {
                    packed = bf.Deserialize(stream);
                }
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(string.Format("load snapshot error ! msg ={0}", ex.Message));
            return;
        }

        if (packed != null)
        {
            Clear();

            MemSnapshotInfo memInfo = new MemSnapshotInfo();
            if (memInfo.AcceptSnapshot(packed as PackedMemorySnapshot))
            {
                _snapshots.Add(memInfo);
            }

            RefreshIndices();
            _selected = _snapshots.Count - 1;
        }
    }
Exemplo n.º 4
0
    public void LoadSession()
    {
        string pathName = EditorUtility.OpenFolderPanel("Load Snapshot Folder", MemUtil.SnapshotsDir, "");

        if (string.IsNullOrEmpty(pathName))
        {
            return;
        }

        List <object> packeds = new List <object>();

        try
        {
            DirectoryInfo TheFolder = new DirectoryInfo(pathName);
            if (!TheFolder.Exists)
            {
                throw new Exception(string.Format("bad path: {0}", TheFolder.ToString()));
            }

            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            foreach (var file in TheFolder.GetFiles())
            {
                var fileName = file.FullName;
                if (fileName.EndsWith(".memsnap"))
                {
                    using (Stream stream = File.Open(fileName, FileMode.Open))
                    {
                        packeds.Add(bf.Deserialize(stream));
                    }
                }
            }

            if (packeds.Count == 0)
            {
                MemUtil.NotifyError("no snapshots found.");
                return;
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(string.Format("load snapshot error ! msg ={0}", ex.Message));
            return;
        }

        Clear();

        foreach (var obj in packeds)
        {
            MemSnapshotInfo memInfo = new MemSnapshotInfo();
            if (memInfo.AcceptSnapshot(obj as PackedMemorySnapshot))
            {
                _snapshots.Add(memInfo);
            }
        }

        if (_snapshots.Count == 0)
        {
            MemUtil.NotifyError("empty snapshot list, ignored.");
            return;
        }

        RefreshIndices();
        _selected = _snapshots.Count - 1;
    }