public override void Init(int flowCount, long flowRecordCount)
        {
            engine = StorageEngine.FromFile(Path.Combine(DataDirectory, "test.stsdb"));
            table = engine.Scheme.CreateOrOpenXTable<long, Tick>(new Locator(CollectionName));

            engine.Scheme.Commit();
        }
Beispiel #2
0
        public virtual void Test1()
        {
            DeleteBase(FileName);

            IDbIdentification parameter = new FileIdentification(FileName);

            var engine = (IStorageEngine) new StorageEngine(parameter);
            var function1 = new VO.Login.Function("login");
            engine.Store(function1);

            var function2 = new VO.Login.Function("login2");
            engine.Store(function2);

            engine.Commit();
            engine.Close();

            engine = new StorageEngine(parameter);
            var l = engine.GetAllObjectIds();
            AssertEquals(2, l.Count);
            engine.Close();
            DeleteBase(FileName);
        }
Beispiel #3
0
        private Contact SaveContract(string ContactName, DateTime date)
        {
            Contact contract = new Contact()
            {
                ContactName = ContactName, LastConversationTime = date
            };

            lock (locker)
            {
                using (var repository = StorageEngine.FromFile(DATABASE_NAME))
                {
                    var table = repository.Scheme.CreateOrOpenXTable <long, Contact>(
                        new Locator(TABLENAME_CONTRACT));
                    repository.Scheme.Commit();

                    var c = table.FirstOrDefault(f => f.Record.ContactName == ContactName);

                    if (c == null)
                    {
                        long id = table.Count == 0 ? 0 : table.LastRow.Key + 1;
                        contract.Id = id;
                        table[id]   = contract;
                    }
                    else
                    {
                        contract.Id = c.Key;
                        table[c.Key].LastConversationTime = date;
                    }

                    table.Commit();
                    table.Close();
                }
            }

            return(contract);
        }
Beispiel #4
0
        private void PopulateStorageEngines()
        {
            StorageEngine selectedStorageEngine = SelectedStorageEngine;

            if (selectedStorageEngine == null)
            {
                selectedStorageEngine = lastSelectedStorageEngine;
            }

            cmbStorageEngine.Items.Clear();
            var selectedProvider = SelectedProvider;

            panelStorageEngineSelector.Visible = selectedProvider != null && selectedProvider.SupportsMultipleStorageEngines;

            if (selectedProvider != null && selectedProvider.SupportsMultipleStorageEngines)
            {
                cmbStorageEngine.Items.Add(new IconListEntry(ITEM_PLEASE_SELECT, null, null));

                foreach (StorageEngine storageEngine in selectedProvider.GetSupportedStorageEngines())
                {
                    var item = new IconListEntry {
                        Text = storageEngine.DisplayName, Value = storageEngine, Icon = Resources.database_engine_x16
                    };
                    cmbStorageEngine.Items.Add(item);
                }

                if (selectedStorageEngine != null)
                {
                    cmbStorageEngine.SelectedIndex = GetStorageEngineItemIndex(selectedStorageEngine);
                }
                else
                {
                    cmbStorageEngine.SelectedIndex = 0;
                }
            }
        }
Beispiel #5
0
 public NeoStoreFileListing(DatabaseLayout databaseLayout, LogFiles logFiles, LabelScanStore labelScanStore, IndexingService indexingService, ExplicitIndexProvider explicitIndexProviders, StorageEngine storageEngine)
 {
     this._databaseLayout           = databaseLayout;
     this._logFiles                 = logFiles;
     this._storageEngine            = storageEngine;
     this._neoStoreFileIndexListing = new NeoStoreFileIndexListing(labelScanStore, indexingService, explicitIndexProviders);
     this._additionalProviders      = new CopyOnWriteArraySet <StoreFileProvider>();
 }
Beispiel #6
0
 internal TestKernelTransactions(StatementLocksFactory statementLocksFactory, ConstraintIndexCreator constraintIndexCreator, StatementOperationParts statementOperations, SchemaWriteGuard schemaWriteGuard, TransactionHeaderInformationFactory txHeaderFactory, TransactionCommitProcess transactionCommitProcess, AuxiliaryTransactionStateManager auxTxStateManager, TransactionHooks hooks, TransactionMonitor transactionMonitor, AvailabilityGuard databaseAvailabilityGuard, Tracers tracers, StorageEngine storageEngine, Procedures procedures, TransactionIdStore transactionIdStore, SystemNanoClock clock, AccessCapability accessCapability, AutoIndexing autoIndexing, VersionContextSupplier versionContextSupplier, TokenHolders tokenHolders, Dependencies dataSourceDependencies) : base(Config.defaults(), statementLocksFactory, constraintIndexCreator, statementOperations, schemaWriteGuard, txHeaderFactory, transactionCommitProcess, auxTxStateManager, hooks, transactionMonitor, databaseAvailabilityGuard, tracers, storageEngine, procedures, transactionIdStore, clock, new AtomicReference <CpuClock>(CpuClock.NOT_AVAILABLE), new AtomicReference <HeapAllocation>(HeapAllocation.NOT_AVAILABLE), accessCapability, autoIndexing, mock(typeof(ExplicitIndexStore)), versionContextSupplier, ON_HEAP, new StandardConstraintSemantics(), mock(typeof(SchemaState)), mock(typeof(IndexingService)), tokenHolders, DEFAULT_DATABASE_NAME, dataSourceDependencies)
 {
 }
Beispiel #7
0
 public TransactionObject(StorageEngine storageEngine)
 {
     this.engine = storageEngine;
     
 }
Beispiel #8
0
 RecordHeader ReadRecordHeader(Int64 address)
 {
     return(RecordHeader.FromBytes(address, StorageEngine.Read(address, RecordHeader.ByteSize)));
 }
Beispiel #9
0
 private void cmbStorageEngine_SelectedIndexChanged(object sender, EventArgs e)
 {
     UpdateDbControls();
     lastSelectedStorageEngine = SelectedStorageEngine;
 }
Beispiel #10
0
        static void Main(string[] args)
        {
            if (args.Contains("-help"))
            {
                Log.ConsoleWriteLine(@"
启动参数:
	-p 6659		设置启动端口
	-xt 200		设置服务最大线程数
	-t 20000		设置超时时间(单位毫秒)
	-w 1		设置权重
	-h 192.168.0.2	设置服务在注册中心的地址
	-tr false		设置调用链追踪是否启用"            );
                return;
            }
            Bootstrap.StartUp(args, () =>
            {
                //Anno.Const.SettingService.TraceOnOff = true;
                var autofac = IocLoader.GetAutoFacContainerBuilder();
                autofac.RegisterType(typeof(RpcConnectorImpl)).As(typeof(IRpcConnector)).SingleInstance();
            }, () =>
            { //startUp  CallBack
                List <AnnoData> routings = new List <AnnoData>();
                foreach (var item in Anno.EngineData.Routing.Routing.Router)
                {
                    if (item.Value.RoutMethod.Name == "get_ActionResult")
                    {
                        continue;
                    }
                    var parameters = item.Value.RoutMethod.GetParameters().ToList().Select(it =>
                    {
                        var parameter = new ParametersValue
                        {
                            Name = it.Name, Position = it.Position, ParameterType = it.ParameterType.FullName
                        };
                        var pa = it.GetCustomAttributes <AnnoInfoAttribute>().ToList();
                        if (pa.Any())
                        {
                            parameter.Desc = pa.First().Desc;
                        }
                        return(parameter);
                    }).ToList();
                    string methodDesc       = String.Empty;
                    var mAnnoInfoAttributes = item.Value.RoutMethod.GetCustomAttributes <AnnoInfoAttribute>().ToList();
                    if (mAnnoInfoAttributes.Count > 0)
                    {
                        methodDesc = mAnnoInfoAttributes.First().Desc;
                    }
                    routings.Add(new AnnoData()
                    {
                        App   = Anno.Const.SettingService.AppName,
                        Id    = $"{Anno.Const.SettingService.AppName}:{item.Key}",
                        Value = Newtonsoft.Json.JsonConvert.SerializeObject(new DataValue {
                            Desc = methodDesc, Name = item.Value.RoutMethod.Name, Parameters = parameters
                        })
                    });
                }
                Dictionary <string, string> input = new Dictionary <string, string>();
                input.Add(CONST.Opt, CONST.DeleteByApp);
                input.Add(CONST.App, Anno.Const.SettingService.AppName);
                var del = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input));
                if (del.Status == false)
                {
                    Anno.Log.Log.Error(del);
                }
                input.Clear();
                input.Add(CONST.Opt, CONST.UpsertBatch);
                input.Add(CONST.Data, Newtonsoft.Json.JsonConvert.SerializeObject(routings));
                var rlt = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input));
                if (rlt.Status == false)
                {
                    Anno.Log.Log.Error(rlt);
                }
            });
        }
Beispiel #11
0
 static void Main(string[] args)
 {
     Console.Title = "AnnoTraceContainer";
     Bootstrap.StartUp(args, () =>
     {
         Anno.Const.SettingService.TraceOnOff = false;
         var cb = IocLoader.GetAutoFacContainerBuilder();
         cb.RegisterType(typeof(RpcConnectorImpl)).As(typeof(IRpcConnector)).SingleInstance();
     }, () =>
     { //startUp  CallBack
         List <AnnoData> routings = new List <AnnoData>();
         foreach (var item in Anno.EngineData.Routing.Routing.Router)
         {
             if (item.Value.RoutMethod.Name == "get_ActionResult")
             {
                 continue;
             }
             var parameters = item.Value.RoutMethod.GetParameters().ToList().Select(it => new ParametersValue {
                 Name = it.Name, Position = it.Position, ParameterType = it.ParameterType.FullName
             }).ToList();
             routings.Add(new AnnoData()
             {
                 App   = Anno.Const.SettingService.AppName,
                 Id    = $"{Anno.Const.SettingService.AppName}:{item.Key}",
                 Value = Newtonsoft.Json.JsonConvert.SerializeObject(new DataValue {
                     Name = item.Value.RoutMethod.Name, Parameters = parameters
                 })
             });
         }
         Dictionary <string, string> input = new Dictionary <string, string>();
         input.Add(CONST.Opt, CONST.DeleteByApp);
         input.Add(CONST.App, Anno.Const.SettingService.AppName);
         var del = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input));
         if (del.Status == false)
         {
             Anno.Log.Log.Error(del);
         }
         input.Clear();
         input.Add(CONST.Opt, CONST.UpsertBatch);
         input.Add(CONST.Data, Newtonsoft.Json.JsonConvert.SerializeObject(routings));
         var rlt = Newtonsoft.Json.JsonConvert.DeserializeObject <AnnoDataResult>(StorageEngine.Invoke(input));
         if (rlt.Status == false)
         {
             Anno.Log.Log.Error(rlt);
         }
     });
 }
Beispiel #12
0
 /// <summary>Initializes a new instance of the <see cref="SessionProvider"/> class.</summary>
 public SessionProvider(StorageEngine storageEngine, string connectionString = null)
 {
     this.config         = this.CreateDatabaseConfiguration(this.CreatePersistenceConfigurer(storageEngine, connectionString));
     this.sessionFactory = this.config.BuildSessionFactory();
 }
Beispiel #13
0
 public void GetImage(bfbd.MiniWeb.HttpResponse Response, Guid ssid)
 {
     byte[] bsImage = StorageEngine.LoadSnapshotImage(ssid.ToString("n"));
     Response.SendImage(bsImage, "png");
 }
Beispiel #14
0
 public TransactionRepresentationCommitProcess(TransactionAppender appender, StorageEngine storageEngine)
 {
     this._appender      = appender;
     this._storageEngine = storageEngine;
 }
Beispiel #15
0
 public RawdataManager(StorageEngine storageEngine)
 {
     this.storageEngine = storageEngine;
 }
Beispiel #16
0
 /// <summary>
 /// Called by the DataSourceManager during start.
 /// </summary>
 public virtual void RegisterCommitProcessDependencies(TransactionAppender appender, StorageEngine applier)
 {
     _localCommit = new TransactionRepresentationCommitProcess(appender, applier);
 }
Beispiel #17
0
 internal StubTransactionCommitProcess(TransactionAppender appender, StorageEngine storageEngine) : base(appender, storageEngine)
 {
 }
Beispiel #18
0
 internal static StorageEngineAdoNetMapping GetProtocolMapping(StorageEngine engine)
 {
     //return ProtocolMappings.SingleOrDefault(pair => Util.StringEqual(pair.Value.Item1, key, true)).Value;
     return(ProtocolMappings.SingleOrDefault(item => Util.StringEqual(item.Key, engine.Key, true)));
 }
Beispiel #19
0
    void Start()
    {
        storageEngine = FindObjectOfType <StorageEngine>();

        GetLivesFromStorage();
    }
Beispiel #20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MySqlServerConnection"/> class.
 /// </summary>
 /// <param name="Server">The server.</param>
 /// <param name="Catalog">The catalog.</param>
 /// <param name="User">The user.</param>
 /// <param name="Password">The password.</param>
 /// <param name="engine">The storage engine to use when creating tables.</param>
 public MySqlServerConnection(string Server, string Catalog, string User, string Password, StorageEngine engine)
     : this(string.Format("server={0};user id={1};password={2};persist security info=True;database={3}", Server, User, Password, Catalog), engine)
 {
 }
 public PersistenceConfiguration(StorageEngine engine) =>
 this.StorageEngine = engine;
Beispiel #22
0
 /// <summary>
 /// Gets a data store configured for mysql
 /// </summary>
 /// <param name="Server">The server.</param>
 /// <param name="Catalog">The catalog.</param>
 /// <param name="User">The user.</param>
 /// <param name="Password">The password.</param>
 /// <param name="engine">The storage engine to use</param>
 /// <returns></returns>
 public static IDataStore GetDataStore(string Server, string Catalog, string User, string Password, StorageEngine engine)
 {
     return(new MySqlDataStore(Server, Catalog, User, Password, engine));
 }
Beispiel #23
0
 /// <summary>
 /// Gets a data store configured for mysql
 /// </summary>
 /// <param name="connection">The connection string</param>
 /// <param name="engine">The storage engine to use</param>
 /// <returns></returns>
 public static IDataStore GetDataStore(string connection, StorageEngine engine)
 {
     return(new MySqlDataStore(connection, engine));
 }
Beispiel #24
0
 public override TransactionCommitProcess Create(TransactionAppender appender, StorageEngine storageEngine, Config config)
 {
     if (config.Get(GraphDatabaseSettings.read_only))
     {
         return(new ReadOnlyTransactionCommitProcess());
     }
     return(( TransactionCommitProcess )newProxyInstance(typeof(TransactionCommitProcess).ClassLoader, new Type[] { typeof(TransactionCommitProcess) }, _commitProcessDelegate));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="MySqlCommandGenerator"/> class.
 /// </summary>
 /// <param name="engine">The engine.</param>
 public MySqlCommandGenerator(StorageEngine engine, IDataConnection conn)
     : base(conn)
 {
     this.StorageEngine = engine;
 }
        public void upload(UploadArguments uploadArguments)
        {
            var site   = GetAuthorisedSite();
            var region = site.Region;

            var storageZoneUrl =
                region.EndpointUrl.AppendPathSegment("StorageZones")
                .AppendPathSegment(fixedStorageZoneId.ToString())
                .SetQueryParam("api_key", AuthorisedSession.SessionToken);

            var storageZone = new GetOperation(storageZoneUrl).ResponseMessage.Content <StorageZoneDTO>();


            Console.WriteLine("Uploading to " + site + " " + uploadArguments.destination);

            var directory = Path.GetDirectoryName(uploadArguments.source);

            if (directory == null)
            {
                throw new ApplicationException("Could not access directory in " + uploadArguments.source);
            }
            var pattern = uploadArguments.source.Substring(uploadArguments.source.LastIndexOf('\\') + 1);


            StorageEngine storageEngine = StorageEngineFactory.Create(
                storageZone.HiggsUrl,
                region.CurrentRegionModel.PieceCheckerEndpoint,
                region.CurrentRegionModel.FileCompositionEndpoint,
                region.CurrentRegionModel.FileRegistrationEndpoint,
                fixedStorageZoneId);


            var files = Directory.GetFiles(directory, pattern);

            Console.WriteLine(files.Length + " files");


            UploadFiles(files, site, storageEngine, uploadArguments.destination);

            Console.WriteLine("Uploading recursively");

            if (uploadArguments.recursive)
            {
                foreach (var subDirectory in Directory.GetDirectories(Path.GetDirectoryName(uploadArguments.source)))
                {
                    string subDirectoryName = new DirectoryInfo(subDirectory).Name;
                    string directorySource  = Path.GetDirectoryName(uploadArguments.source);
                    UploadDirectory(storageEngine, site, subDirectoryName, directorySource, uploadArguments.destination);
                }
            }



/**
 *          Console.WriteLine("source=" + uploadArguments.source);
 *          Console.WriteLine("destination=" + uploadArguments.destination);
 *          Console.WriteLine("site=" + this.site);
 *          Console.WriteLine("username="******"subdomain=" + this.Subdomain);
 *
 * **/
        }
Beispiel #27
0
 public IConnectionInfo CreateInfo(StorageEngine storageEngine, string user, string password, string server, string database)
 {
     return(new ConnectionInfo(storageEngine, user, password, server, database));
 }
Beispiel #28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MySqlCommandGenerator"/> class.
 /// </summary>
 /// <param name="engine">The engine.</param>
 public MySqlCommandGenerator(StorageEngine engine)
 {
     this.StorageEngine = engine;
 }
Beispiel #29
0
 public KernelTransactions(Config config, StatementLocksFactory statementLocksFactory, ConstraintIndexCreator constraintIndexCreator, StatementOperationParts statementOperations, SchemaWriteGuard schemaWriteGuard, TransactionHeaderInformationFactory txHeaderFactory, TransactionCommitProcess transactionCommitProcess, AuxiliaryTransactionStateManager auxTxStateManager, TransactionHooks hooks, TransactionMonitor transactionMonitor, AvailabilityGuard databaseAvailabilityGuard, Tracers tracers, StorageEngine storageEngine, Procedures procedures, TransactionIdStore transactionIdStore, SystemNanoClock clock, AtomicReference <CpuClock> cpuClockRef, AtomicReference <HeapAllocation> heapAllocationRef, AccessCapability accessCapability, AutoIndexing autoIndexing, ExplicitIndexStore explicitIndexStore, VersionContextSupplier versionContextSupplier, CollectionsFactorySupplier collectionsFactorySupplier, ConstraintSemantics constraintSemantics, SchemaState schemaState, IndexingService indexingService, TokenHolders tokenHolders, string currentDatabaseName, Dependencies dataSourceDependencies)
 {
     if (!InstanceFieldsInitialized)
     {
         InitializeInstanceFields();
         InstanceFieldsInitialized = true;
     }
     this._config = config;
     this._statementLocksFactory  = statementLocksFactory;
     this._constraintIndexCreator = constraintIndexCreator;
     this._statementOperations    = statementOperations;
     this._schemaWriteGuard       = schemaWriteGuard;
     this._transactionHeaderInformationFactory = txHeaderFactory;
     this._transactionCommitProcess            = transactionCommitProcess;
     this._auxTxStateManager         = auxTxStateManager;
     this._hooks                     = hooks;
     this._transactionMonitor        = transactionMonitor;
     this._databaseAvailabilityGuard = databaseAvailabilityGuard;
     this._tracers                   = tracers;
     this._storageEngine             = storageEngine;
     this._procedures                = procedures;
     this._transactionIdStore        = transactionIdStore;
     this._cpuClockRef               = cpuClockRef;
     this._heapAllocationRef         = heapAllocationRef;
     this._accessCapability          = accessCapability;
     this._autoIndexing              = autoIndexing;
     this._explicitIndexStore        = explicitIndexStore;
     this._indexingService           = indexingService;
     this._tokenHolders              = tokenHolders;
     this._currentDatabaseName       = currentDatabaseName;
     this._dataSourceDependencies    = dataSourceDependencies;
     this._versionContextSupplier    = versionContextSupplier;
     this._clock                     = clock;
     DoBlockNewTransactions();
     this._collectionsFactorySupplier = collectionsFactorySupplier;
     this._constraintSemantics        = constraintSemantics;
     this._schemaState = schemaState;
 }
Beispiel #30
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldRecoverExistingData() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldRecoverExistingData()
        {
            File file = _logFiles.getLogFileForVersion(_logVersion);

            WriteSomeData(file, pair =>
            {
                LogEntryWriter writer = pair.first();
                Consumer <LogPositionMarker> consumer = pair.other();
                LogPositionMarker marker = new LogPositionMarker();

                // last committed tx
                consumer.accept(marker);
                LogPosition lastCommittedTxPosition = marker.newPosition();
                writer.writeStartEntry(0, 1, 2L, 3L, new sbyte[0]);
                _lastCommittedTxStartEntry = new LogEntryStart(0, 1, 2L, 3L, new sbyte[0], lastCommittedTxPosition);
                writer.writeCommitEntry(4L, 5L);
                _lastCommittedTxCommitEntry = new LogEntryCommit(4L, 5L);

                // check point pointing to the previously committed transaction
                writer.writeCheckPointEntry(lastCommittedTxPosition);
                _expectedCheckPointEntry = new CheckPoint(lastCommittedTxPosition);

                // tx committed after checkpoint
                consumer.accept(marker);
                writer.writeStartEntry(0, 1, 6L, 4L, new sbyte[0]);
                _expectedStartEntry = new LogEntryStart(0, 1, 6L, 4L, new sbyte[0], marker.newPosition());

                writer.writeCommitEntry(5L, 7L);
                _expectedCommitEntry = new LogEntryCommit(5L, 7L);

                return(true);
            });

            LifeSupport     life    = new LifeSupport();
            RecoveryMonitor monitor = mock(typeof(RecoveryMonitor));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.concurrent.atomic.AtomicBoolean recoveryRequired = new java.util.concurrent.atomic.AtomicBoolean();
            AtomicBoolean recoveryRequired = new AtomicBoolean();

            try
            {
                StorageEngine storageEngine = mock(typeof(StorageEngine));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.entry.LogEntryReader<org.neo4j.kernel.impl.transaction.log.ReadableClosablePositionAwareChannel> reader = new org.neo4j.kernel.impl.transaction.log.entry.VersionAwareLogEntryReader<>();
                LogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>();
                LogTailScanner tailScanner = GetTailScanner(_logFiles, reader);

                TransactionMetadataCache metadataCache = new TransactionMetadataCache();
                LogicalTransactionStore  txStore       = new PhysicalLogicalTransactionStore(_logFiles, metadataCache, reader, _monitors, false);
                CorruptedLogsTruncator   logPruner     = new CorruptedLogsTruncator(_storeDir, _logFiles, FileSystemRule.get());
                life.add(new Recovery(new DefaultRecoveryServiceAnonymousInnerClass(this, storageEngine, tailScanner, _transactionIdStore, txStore, _versionRepository, NO_MONITOR, recoveryRequired)
                                      , logPruner, _schemaLife, monitor, SilentProgressReporter.INSTANCE, false));

                life.Start();

                InOrder order = inOrder(monitor);
                order.verify(monitor, times(1)).recoveryRequired(any(typeof(LogPosition)));
                order.verify(monitor, times(1)).recoveryCompleted(2);
                assertTrue(recoveryRequired.get());
            }
            finally
            {
                life.Shutdown();
            }
        }
Beispiel #31
0
 public ObjectDB(StorageEngine storageEngine, Serializer <TGroup> serializer, GuidProvider guidProvider = null)
 {
     this.storageEngine = storageEngine;
     this.serializer    = serializer;
     this.guidProvider  = guidProvider ?? (() => Guid.NewGuid());
 }
Beispiel #32
0
 public DefaultRecoveryServiceAnonymousInnerClass3(RecoveryTest outerInstance, StorageEngine storageEngine, LogTailScanner tailScanner, TransactionIdStore transactionIdStore, LogicalTransactionStore txStore, SimpleLogVersionRepository versionRepository, UnknownType noMonitor, AtomicBoolean recoveryRequired) : base(storageEngine, tailScanner, transactionIdStore, txStore, versionRepository, noMonitor)
 {
     this.outerInstance     = outerInstance;
     this._recoveryRequired = recoveryRequired;
 }