blob: 4d7f21f79e4bfb84462d0b286d1c230c15ee991b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 The Regents of the University of California.
* This material was produced under U.S. Government contract W-7405-ENG-36
* for Los Alamos National Laboratory, which is operated by the University
* of California for the U.S. Department of Energy. The U.S. Government has
* rights to use, reproduce, and distribute this software. NEITHER THE
* GOVERNMENT NOR THE UNIVERSITY MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
* ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified
* to produce derivative works, such modified software should be clearly marked,
* so as not to confuse it with the version available from LANL.
*
* Additionally, 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
*
* LA-CC 04-115
*******************************************************************************/
package org.eclipse.ptp.debug.core.cdi;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ptp.core.elements.IPJob;
import org.eclipse.ptp.core.util.BitList;
import org.eclipse.ptp.debug.core.IAbstractDebugger;
import org.eclipse.ptp.debug.core.cdi.model.IPCDITarget;
import org.eclipse.ptp.debug.core.launch.IPLaunch;
public interface IPCDISession extends ICommonActions {
/** Start debugger
* @param monitor
* @throws CoreException
*/
public void start(IProgressMonitor monitor) throws CoreException;
/** Get debug targets
* @return
*/
IPCDITarget[] getTargets();
/** Set attribute to session
* @param key
* @param value
*/
void setAttribute(String key, String value);
/** Get value in attribute
* @param key
* @return
*/
String getAttribute(String key);
/** Get pcid event manager
* @return
*/
IPCDIEventManager getEventManager();
/** Get pcdi breakpoint manager
* @return
*/
IPCDIBreakpointManager getBreakpointManager();
/** Get pcdi session configuration
* @return
*/
IPCDISessionConfiguration getConfiguration();
/** Terminate debugger
* @throws PCDIException
*/
void terminate() throws PCDIException;
/** Get session process
* @return
* @throws PCDIException
*/
Process getSessionProcess() throws PCDIException;
/** Register process to Debug View
* @param tasks process ids
* @param sendEvent true to send event to UI
* @param resumeTarget true to resume this process
*/
public void registerTargets(BitList tasks, boolean sendEvent, boolean resumeTarget);
/** Register processes to Debug View
* @param tasks process ids
* @param sendEvent true to send event to UI
*/
public void registerTargets(BitList tasks, boolean sendEvent);
/** Unregister process to Debug View
* @param tasks process ids
* @param sendEvent true to send event to UI
*/
public void unregisterTargets(BitList tasks, boolean sendEvent);
/** Get Job
* @return
*/
public IPJob getJob();
/** Get total processes in this session
* @return total processes
*/
public int getTotalProcesses();
/** Create an empty BitList and set range 0 to total processes
* @return
*/
public BitList createBitList();
/** Create an empty BitList
* @return
*/
public BitList createEmptyBitList();
/** Create an empty BitList and set range to given index
* @param index set range to
* @return
*/
public BitList createBitList(int index);
/** Get registered debug processes
* @return
*/
public BitList getRegisteredTargets();
/** Get pcdi target by given task ID
* @param target_id
* @return
*/
public IPCDITarget getTarget(int target_id);
/** Shutdown this session
*
*/
public void shutdown();
/** Get launch
* @return
*/
public IPLaunch getLaunch();
/** Get external debugger
* @return
*/
public IAbstractDebugger getDebugger();
}