示例#1
0
        /// <exception cref="System.IO.IOException"></exception>
        public DefragmentServicesImpl(DefragmentConfig defragConfig, IDefragmentListener
                                      listener)
        {
            _listener = listener;
            Config4Impl originalConfig = (Config4Impl)defragConfig.Db4oConfig();
            IStorage    storage        = defragConfig.BackupStorage();

            if (defragConfig.ReadOnly())
            {
                storage = new NonFlushingStorage(storage);
            }
            Config4Impl sourceConfig = PrepareConfig(originalConfig, storage, defragConfig.ReadOnly
                                                         ());

            _sourceDb = (LocalObjectContainer)Db4oFactory.OpenFile(sourceConfig, defragConfig
                                                                   .TempPath()).Ext();
            _sourceDb.ShowInternalClasses(true);
            defragConfig.Db4oConfig().BlockSize(_sourceDb.BlockSize());
            if (!originalConfig.GenerateCommitTimestamps().DefiniteNo())
            {
                defragConfig.Db4oConfig().GenerateCommitTimestamps(_sourceDb.Config().GenerateCommitTimestamps
                                                                       ().DefiniteYes());
            }
            _targetDb = FreshTargetFile(defragConfig);
            _mapping  = defragConfig.Mapping();
            _mapping.Open();
            _defragConfig = defragConfig;
        }
示例#2
0
 /// <exception cref="System.IO.IOException"></exception>
 public DefragmentServicesImpl(DefragmentConfig defragConfig, IDefragmentListener
     listener)
 {
     _listener = listener;
     var originalConfig = (Config4Impl) defragConfig.Db4oConfig();
     var storage = defragConfig.BackupStorage();
     if (defragConfig.ReadOnly())
     {
         storage = new NonFlushingStorage(storage);
     }
     var sourceConfig = PrepareConfig(originalConfig, storage, defragConfig.ReadOnly
         ());
     _sourceDb = (LocalObjectContainer) Db4oFactory.OpenFile(sourceConfig, defragConfig
         .TempPath()).Ext();
     _sourceDb.ShowInternalClasses(true);
     defragConfig.Db4oConfig().BlockSize(_sourceDb.BlockSize());
     if (!originalConfig.GenerateCommitTimestamps().DefiniteNo())
     {
         defragConfig.Db4oConfig().GenerateCommitTimestamps(_sourceDb.Config().GenerateCommitTimestamps
             ().DefiniteYes());
     }
     _targetDb = FreshTargetFile(defragConfig);
     _mapping = defragConfig.Mapping();
     _mapping.Open();
     _defragConfig = defragConfig;
 }
示例#3
0
        /// <exception cref="System.IO.IOException"></exception>
        private static void UpgradeFile(DefragmentConfig config)
        {
            CopyBin(config.BackupStorage(), config.BackupStorage(), config.BackupPath(), config
                    .TempPath());
            IConfiguration db4oConfig = (IConfiguration)((Config4Impl)config.Db4oConfig()).DeepClone
                                            (null);

            db4oConfig.Storage = config.BackupStorage();
            db4oConfig.AllowVersionUpdates(true);
            IObjectContainer db = Db4oFactory.OpenFile(db4oConfig, config.TempPath());

            db.Close();
        }
		/// <exception cref="System.IO.IOException"></exception>
		private static void UpgradeFile(DefragmentConfig config)
		{
			CopyBin(config.BackupStorage(), config.BackupStorage(), config.BackupPath(), config
				.TempPath());
			IConfiguration db4oConfig = (IConfiguration)((Config4Impl)config.Db4oConfig()).DeepClone
				(null);
			db4oConfig.Storage = config.BackupStorage();
			db4oConfig.AllowVersionUpdates(true);
			IObjectContainer db = Db4oFactory.OpenFile(db4oConfig, config.TempPath());
			db.Close();
		}