示例#1
0
 public override void Accept(CountsVisitor visitor)
 {
     foreach (KeyValuePair <CountsKey, Register_DoubleLongRegister> entry in _counts.SetOfKeyValuePairs())
     {
         Register_DoubleLongRegister register = entry.Value;
         entry.Key.accept(visitor, register.ReadFirst(), register.ReadSecond());
     }
 }
示例#2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test @Resources.Life(STARTED) public void shouldSupportTransactionsAppliedOutOfOrderOnRotation() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldSupportTransactionsAppliedOutOfOrderOnRotation()
        {
            // given
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final CountsTracker tracker = resourceManager.managed(newTracker());
            CountsTracker tracker = ResourceManager.managed(NewTracker());

            using (Org.Neo4j.Kernel.Impl.Api.CountsAccessor_Updater tx = tracker.Apply(2).get())
            {
                tx.IncrementNodeCount(1, 1);
            }
            using (Org.Neo4j.Kernel.Impl.Api.CountsAccessor_Updater tx = tracker.Apply(4).get())
            {
                tx.IncrementNodeCount(1, 1);
            }

            // when
            Future <long> rotated = Threading.executeAndAwait(new Rotation(2), tracker, thread =>
            {
                switch (thread.State)
                {
                case BLOCKED:
                case WAITING:
                case TIMED_WAITING:
                case TERMINATED:
                    return(true);

                default:
                    return(false);
                }
            }, 10, SECONDS);

            using (Org.Neo4j.Kernel.Impl.Api.CountsAccessor_Updater tx = tracker.Apply(5).get())
            {
                tx.IncrementNodeCount(1, 1);
            }
            using (Org.Neo4j.Kernel.Impl.Api.CountsAccessor_Updater tx = tracker.Apply(3).get())
            {
                tx.IncrementNodeCount(1, 1);
            }

            // then
            assertEquals("rotated transaction", 4, rotated.get().longValue());
            assertEquals("stored transaction", 4, tracker.TxId());

            // the value in memory
            assertEquals("count", 4, tracker.NodeCount(1, Registers.newDoubleLongRegister()).readSecond());

            // the value in the store
            CountsVisitor visitor = mock(typeof(CountsVisitor));

            tracker.VisitFile(tracker.CurrentFile(), visitor);
            verify(visitor).visitNodeCount(1, 3);
            verifyNoMoreInteractions(visitor);

            assertEquals("final rotation", 5, tracker.Rotate(5));
        }
示例#3
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public void accept(final org.neo4j.kernel.impl.api.CountsVisitor visitor)
        public override void Accept(CountsVisitor visitor)
        {
            try
            {
                VisitAll(new DelegatingVisitor(this, visitor));
            }
            catch (IOException e)
            {
                throw new UnderlyingStorageException(e);
            }
        }
示例#4
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void visitFile(java.io.File path, org.neo4j.kernel.impl.api.CountsVisitor visitor) throws java.io.IOException
            public override void VisitFile(File path, CountsVisitor visitor)
            {
                base.VisitFile(path, visitor);
            }
示例#5
0
 internal DelegatingVisitor(CountsTracker outerInstance, CountsVisitor visitor) : base(outerInstance)
 {
     this._outerInstance = outerInstance;
     this.Visitor        = visitor;
 }
示例#6
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: protected void visitFile(java.io.File path, org.neo4j.kernel.impl.api.CountsVisitor visitor) throws java.io.IOException
        protected internal virtual void VisitFile(File path, CountsVisitor visitor)
        {
            base.VisitFile(path, new DelegatingVisitor(this, visitor));
        }