Beispiel #1
0
 public virtual void EnsureInitialized()
 {
     if (_idToTimestamp != null)
     {
         return;
     }
     if (!_container.Config().GenerateCommitTimestamps().DefiniteYes())
     {
         return;
     }
     Initialize();
 }
 public virtual BTree IdToTimestamp()
 {
     if (_idToTimestamp != null)
     {
         return(_idToTimestamp);
     }
     if (!_container.Config().GenerateCommitTimestamps().DefiniteYes())
     {
         return(null);
     }
     Initialize();
     return(_idToTimestamp);
 }
 /// <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;
 }
		private TransactionLogHandler NewTransactionLogHandler(LocalObjectContainer container
			)
		{
			bool fileBased = container.Config().FileBasedTransactionLog() && container is IoAdaptedObjectContainer;
			if (!fileBased)
			{
				return new EmbeddedTransactionLogHandler(container);
			}
			string fileName = ((IoAdaptedObjectContainer)container).FileName();
			return new FileBasedTransactionLogHandler(container, fileName);
		}