PackageDB(PackageDB origin, InstanceStore store, Dictionary <string, PackageFeed> newFeeds, DateTime lastUpdate) { _version = origin._version + 1; _feeds = newFeeds ?? origin._feeds; _instances = store ?? origin._instances; _lastUpdate = lastUpdate; }
/// <summary> /// Reads this cache from a serialized data. /// </summary> /// <param name="monitor">The monitor to use.</param> /// <param name="reader">The deserializer to use.</param> /// <returns>True on success, false on error.</returns> public bool Read(IActivityMonitor monitor, ICKBinaryReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } try { _db = new PackageDB(reader); return(true); } catch (Exception ex) { monitor.Error("Unable to read package database.", ex); return(false); } }
/// <summary> /// Registers multiple packages at once. Any <see cref="PackageInfo.Dependencies"/> must /// be already registered or appear before the dependent package in the <paramref name="infos"/> enumerable. /// </summary> /// <param name="m">The monitor to use.</param> /// <param name="infos">The package informations.</param> /// <param name="skipExisting"> /// False to log an error and return null if infos contains already registered packages. /// By default, exisiting packages are silently ignored. /// </param> /// <returns>The new database or null on error.</returns> public PackageDB Add(IActivityMonitor m, IEnumerable <PackageInfo> infos, bool skipExisting = true) { var newDb = _db.Add(m, infos, skipExisting); return(newDb != null ? (_db = newDb) : null); }
/// <summary> /// Initializes a new empty cache. /// </summary> public ArtifactCache() { _db = new PackageDB(); }