Example #1
0
 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;
 }
Example #2
0
 /// <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);
     }
 }
Example #3
0
        /// <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);
        }
Example #4
0
 /// <summary>
 /// Initializes a new empty cache.
 /// </summary>
 public ArtifactCache()
 {
     _db = new PackageDB();
 }