/*
 * Copyright (c) 2020, Google LLC  and others
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.eclipse.jgit.logging;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

Singleton that collects performance logs.
Since:5.10
/** * Singleton that collects performance logs. * * @since 5.10 */
public class PerformanceLogContext {
Singleton instance that stores the statistics.
/** Singleton instance that stores the statistics. */
private static final PerformanceLogContext INSTANCE = new PerformanceLogContext();
List that stores events as performance logs.
/** List that stores events as performance logs. */
private static final ThreadLocal<List<PerformanceLogRecord>> eventRecords = ThreadLocal .withInitial(ArrayList::new); private PerformanceLogContext() { }
Get the instance of the context.
Returns:instance of performance log context.
/** * Get the instance of the context. * * @return instance of performance log context. */
public static PerformanceLogContext getInstance() { return INSTANCE; }
Get the unmodifiable list of events as performance records.
Returns:unmodifiable list of events as performance logs.
/** * Get the unmodifiable list of events as performance records. * * @return unmodifiable list of events as performance logs. */
public List<PerformanceLogRecord> getEventRecords() { return Collections.unmodifiableList(eventRecords.get()); }
Adds a performance log record to the current list of events.
Params:
  • record – performance log record that is going to be added.
/** * Adds a performance log record to the current list of events. * * @param record * performance log record that is going to be added. */
public void addEvent(PerformanceLogRecord record) { eventRecords.get().add(record); }
Removes all of the existing records from the current list of events.
/** * Removes all of the existing records from the current list of events. */
public void cleanEvents() { eventRecords.remove(); } }