Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 1e1bef89f2e0ba49a99f63d20adc35393e49ba01 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*******************************************************************************
 * Copyright (c) 2008, 2009 Nokia 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:
 * Nokia - Initial API and implementation
 *******************************************************************************/
package org.eclipse.cdt.debug.core.executables;

import org.eclipse.core.runtime.IProgressMonitor;

/**
 * ISourceFileProvider supplies a list of source files used by a given Executable.
 * 
 * @author Ken Ryall
 * @since 6.0
 * 
 */

public interface ISourceFilesProvider {
	
	public static final int LOW_PRIORITY = 25;
	public static final int NORMAL_PRIORITY = 50;
	public static final int HIGH_PRIORITY = 75;
	
	/**
	 * Gets the priority to be used for this executable.
	 * The priority is used by the Executables Manager when multiple ISourceFilesProviders are available.
	 * ISourceFilesProvider.getSourceFiles will be called for each one in priority order and will use the
	 * first one that returns a non empty result.
	 * 
	 * @param executable
	 * @return the priority level to be used for this ISourceFilesProvider
	 */
	int getPriority(Executable executable);
	
	/**
	 * Returns a list of source files used by an executable.
	 * @param executable
	 * @param monitor
	 * @return The list of source files for the executable. These may be file name, full or partial paths.
	 */
	String[] getSourceFiles(Executable executable, IProgressMonitor monitor);

}

Back to the top