/*
 *(c) Copyright QNX Software Systems Ltd. 2002.
 * All Rights Reserved.
 * 
 */

package org.eclipse.cdt.debug.core.cdi.event;

/**
 * 
 * Notifies that the originator has been restarted.
 * The originators:
 * <ul>
 * <li>target (ICDITarget)
 * </ul>
 * 
 * @since Jul 11, 2002
 */
public interface ICDIRestartedEvent extends ICDIEvent {
}
