/*******************************************************************************
 * Copyright (c) 2011 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.stem.loggers.manager;

import org.eclipse.stem.loggers.LOGGER_EVENTS;

/**
 * Interface for classes that want to monitor events
 * in the simulation logger.
 */
public interface ISimulationLoggerManagerListener
{
	/**
	 * Callback for changes in state on the simulation logger manager.  This includes
	 * the addition and removal of simulations from monitoring.
	 * 
	 * @param event The simulation logger manager event
	 * @param targets The targets affected by this state change
	 */
	public void simulationLoggerEvent(LOGGER_EVENTS event, Object[] targets);
}
