All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.neo4j.consistency.statistics.Counts Maven / Gradle / Ivy

There is a newer version: 5.26.0
Show newest version
/*
 * Copyright (c) 2002-2020 "Neo4j,"
 * Neo4j Sweden AB [http://neo4j.com]
 *
 * This file is part of Neo4j.
 *
 * Neo4j is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package org.neo4j.consistency.statistics;

/**
 * Increments counts of different types, per thread. Able to sum a count for all threads as well.
 */
public interface Counts
{
    enum Type
    {
        skipCheck,
        missCheck,
        checked,
        checkErrors,
        legacySkip,
        correctSkipCheck,
        skipBackup,
        overwrite,
        noCacheSkip,
        activeCache,
        clearCache,
        noCache,
        relSourcePrevCheck,
        relSourceNextCheck,
        relTargetPrevCheck,
        relTargetNextCheck,
        relCacheCheck,
        forwardLinks,
        backLinks,
        nullLinks,
        nodeSparse,
        nodeDense
    }

    void incAndGet( Type type, int threadIndex );

    long sum( Type type );

    void reset();

    Counts NONE = new Counts()
    {
        @Override
        public void reset()
        {
        }

        @Override
        public void incAndGet( Type type, int threadIndex )
        {
        }

        @Override
        public long sum( Type type )
        {
            return 0;
        }
    };
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy