/******************************************************************************* * Copyright (c) 2006, 2009 Wind River Systems 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: * Wind River Systems - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.dsf.debug.service; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.datamodel.IDMContext; import org.eclipse.cdt.dsf.datamodel.IDMData; import org.eclipse.cdt.dsf.datamodel.IDMEvent; import org.eclipse.cdt.dsf.service.IDsfService; /** * Service for accessing debugger symbols. This service builds on the Modules * service, but not all debuggers provide access for parsing symbols so this * service is separated. * * @see IModules * @since 1.0 */ public interface ISymbols extends IDsfService { public interface ISymbolObjectDMContext extends IDMContext {} /** * Data about a debug symbol. */ public interface ISymbolObjectDMData extends IDMData { String getName(); String getTypeName(); String getFilepath(); } /** * Indicates that the list of symbol objects is changed. Parsing debug * symbols can be a long running operation (order of 10's of seconds or * minutes), so it is useful for the service to provide access to the data * even while it's still parsing. This event may be issued periodically * by the service to indicate that a section of debug symbols has been * parsed. */ public interface ISymbolDataChangedDMEvent extends IDMEvent<IModules.ISymbolDMContext> {} /** * Retrieves the list of symbols. * @param symCtx Symbols context to retrieve symbols for. * @param rm Request completion monitor. The return value is an iterator (rather than * array) since there could be a very large number of symbols returned. */ public void getSymbols(IModules.ISymbolDMContext symCtx, DataRequestMonitor<Iterable<ISymbolObjectDMContext>> rm); }