Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/02/19 16:07:07 (5 years ago)
Author:
gkronber
Message:

#2520: use new persistence in ContentManager (with fallback), ClipBoard (with fallback), as well as for deep-cloning in Scripting and for Hive Persistence (without fallback & incomplete)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2520_PersistenceReintegration/HeuristicLab.Core/3.3/PersistenceContentManager.cs

    r16474 r16480  
    3232
    3333    protected override IStorableContent LoadContent(string filename) {
    34       return XmlParser.Deserialize<IStorableContent>(filename);
     34      // first try to load using the new persistence format
     35      try {
     36        var ser = new ProtoBufSerializer();
     37        return (IStorableContent)ser.Deserialize(filename);
     38      } catch (PersistenceException e) {
     39        // try old format if new format fails
     40        return XmlParser.Deserialize<IStorableContent>(filename);
     41      }
    3542    }
    3643
    3744    protected override void SaveContent(IStorableContent content, string filename, bool compressed, CancellationToken cancellationToken) {
    38       XmlGenerator.Serialize(content, filename, compressed ? CompressionLevel.Optimal : CompressionLevel.NoCompression, cancellationToken);
     45      // XmlGenerator.Serialize(content, filename, compressed ? CompressionLevel.Optimal : CompressionLevel.NoCompression, cancellationToken);
     46      // store files with the new persistence format
     47      var ser = new ProtoBufSerializer();
     48      ser.Serialize(content, filename); // TODO: support cancellation
    3949    }
    4050  }
Note: See TracChangeset for help on using the changeset viewer.