//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: void perform(io.netty.channel.ChannelHandlerContext ctx) throws java.io.IOException internal virtual void Perform(ChannelHandlerContext ctx) { CheckPointer checkPointer = _checkPointerSupplier.get(); Resource checkPointLock = _mutex.storeCopy(() => checkPointer.TryCheckPoint(new SimpleTriggerInfo("Store copy"))); Future <Void> completion = null; try { using (RawCursor <StoreResource, IOException> resources = _resourceStreamFactory.create()) { while (resources.Next()) { StoreResource resource = resources.get(); _protocol.stream(ctx, resource); } completion = _protocol.end(ctx, SUCCESS); } } finally { if (completion != null) { completion.addListener(f => checkPointLock.close()); } else { checkPointLock.Close(); } } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: protected void channelRead0(io.netty.channel.ChannelHandlerContext channelHandlerContext, PrepareStoreCopyRequest prepareStoreCopyRequest) throws java.io.IOException protected internal override void ChannelRead0(ChannelHandlerContext channelHandlerContext, PrepareStoreCopyRequest prepareStoreCopyRequest) { CloseablesListener closeablesListener = new CloseablesListener(); PrepareStoreCopyResponse response = PrepareStoreCopyResponse.Error(PrepareStoreCopyResponse.Status.EListingStore); try { NeoStoreDataSource neoStoreDataSource = _dataSourceSupplier.get(); if (!hasSameStoreId(prepareStoreCopyRequest.StoreId, neoStoreDataSource)) { channelHandlerContext.write(ResponseMessageType.PREPARE_STORE_COPY_RESPONSE); response = PrepareStoreCopyResponse.Error(PrepareStoreCopyResponse.Status.EStoreIdMismatch); } else { CheckPointer checkPointer = neoStoreDataSource.DependencyResolver.resolveDependency(typeof(CheckPointer)); closeablesListener.Add(TryCheckpointAndAcquireMutex(checkPointer)); PrepareStoreCopyFiles prepareStoreCopyFiles = closeablesListener.Add(_prepareStoreCopyFilesProvider.prepareStoreCopyFiles(neoStoreDataSource)); StoreResource[] nonReplayable = prepareStoreCopyFiles.AtomicFilesSnapshot; foreach (StoreResource storeResource in nonReplayable) { _streamingProtocol.stream(channelHandlerContext, storeResource); } channelHandlerContext.write(ResponseMessageType.PREPARE_STORE_COPY_RESPONSE); response = CreateSuccessfulResponse(checkPointer, prepareStoreCopyFiles); } } finally { channelHandlerContext.writeAndFlush(response).addListener(closeablesListener); _protocol.expect(CatchupServerProtocol.State.MESSAGE_TYPE); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private PrepareStoreCopyResponse createSuccessfulResponse(org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer checkPointer, PrepareStoreCopyFiles prepareStoreCopyFiles) throws java.io.IOException private PrepareStoreCopyResponse CreateSuccessfulResponse(CheckPointer checkPointer, PrepareStoreCopyFiles prepareStoreCopyFiles) { LongSet indexIds = prepareStoreCopyFiles.NonAtomicIndexIds; File[] files = prepareStoreCopyFiles.ListReplayableFiles(); long lastCommittedTxId = checkPointer.LastCheckPointedTransactionId(); return(PrepareStoreCopyResponse.Success(files, indexIds, lastCommittedTxId)); }
public DefaultMasterImplSPI(GraphDatabaseAPI graphDb, FileSystemAbstraction fileSystemAbstraction, Monitors monitors, TokenHolders tokenHolders, IdGeneratorFactory idGeneratorFactory, TransactionCommitProcess transactionCommitProcess, CheckPointer checkPointer, TransactionIdStore transactionIdStore, LogicalTransactionStore logicalTransactionStore, NeoStoreDataSource neoStoreDataSource, LogProvider logProvider) { this._graphDb = graphDb; this._fileSystem = fileSystemAbstraction; this._tokenHolders = tokenHolders; this._idGeneratorFactory = idGeneratorFactory; this._transactionCommitProcess = transactionCommitProcess; this._checkPointer = checkPointer; this._neoStoreDataSource = neoStoreDataSource; this._databaseDirectory = graphDb.DatabaseLayout().databaseDirectory(); this._txChecksumLookup = new TransactionChecksumLookup(transactionIdStore, logicalTransactionStore); this._responsePacker = new ResponsePacker(logicalTransactionStore, transactionIdStore, graphDb.storeId); this._monitors = monitors; //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: monitors.AddMonitorListener(new LoggingStoreCopyServerMonitor(logProvider.GetLog(typeof(StoreCopyServer))), typeof(StoreCopyServer).FullName); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void flushStoreFilesWithCorrectCheckpointTriggerName() throws java.io.IOException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void FlushStoreFilesWithCorrectCheckpointTriggerName() { CheckPointer checkPointer = mock(typeof(CheckPointer)); StoreCopyCheckPointMutex mutex = new StoreCopyCheckPointMutex(); NeoStoreDataSource dataSource = mock(typeof(NeoStoreDataSource)); when(dataSource.StoreCopyCheckPointMutex).thenReturn(mutex); when(dataSource.ListStoreFiles(anyBoolean())).thenReturn(Iterators.emptyResourceIterator()); DefaultMasterImplSPI master = new DefaultMasterImplSPI(mock(typeof(GraphDatabaseAPI), RETURNS_MOCKS), mock(typeof(FileSystemAbstraction)), new Monitors(), mockedTokenHolders(), mock(typeof(IdGeneratorFactory)), mock(typeof(TransactionCommitProcess)), checkPointer, mock(typeof(TransactionIdStore)), mock(typeof(LogicalTransactionStore)), dataSource, NullLogProvider.Instance); master.FlushStoresAndStreamStoreFiles(mock(typeof(StoreWriter))); TriggerInfo expectedTriggerInfo = new SimpleTriggerInfo(DefaultMasterImplSPI.STORE_COPY_CHECKPOINT_TRIGGER); verify(checkPointer).tryCheckPoint(expectedTriggerInfo); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private org.neo4j.graphdb.Resource tryCheckpointAndAcquireMutex(org.neo4j.kernel.impl.transaction.log.checkpoint.CheckPointer checkPointer) throws java.io.IOException private Resource TryCheckpointAndAcquireMutex(CheckPointer checkPointer) { return(_dataSourceSupplier.get().StoreCopyCheckPointMutex.storeCopy(() => checkPointer.TryCheckPoint(new SimpleTriggerInfo("Store copy")))); }