/******************************************************************************* * Copyright (c) 2006, 2011 Wind River Systems, Inc. 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: * Markus Schorn - initial API and implementation * Andrew Ferguson (Symbian) * Sergey Prigogin (Google) *******************************************************************************/ package org.eclipse.cdt.core.index; import org.eclipse.cdt.core.dom.ast.IFileNomination; import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDirective; import org.eclipse.core.runtime.CoreException; /** * Represents a file that has been indexed. * * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. * * @since 4.0 */ public interface IIndexFile extends IFileNomination { IIndexFile[] EMPTY_FILE_ARRAY = {}; /** * Returns an IIndexFileLocation representing the location of this file * @return an IIndexFileLocation representing the location of this file * @throws CoreException */ IIndexFileLocation getLocation() throws CoreException; /** * Returns all includes found in this file. * @return an array of all includes found in this file * @throws CoreException */ IIndexInclude[] getIncludes() throws CoreException; /** * Returns all macros defined in this file. * @return an array of macros found in this file * @throws CoreException */ IIndexMacro[] getMacros() throws CoreException; /** * Returns all using directives for namespaces and global scope, found in this file. * @throws CoreException * @since 5.0 */ ICPPUsingDirective[] getUsingDirectives() throws CoreException; /** * Last modification of file before it was indexed. * @return the last modification date of the file at the time it was parsed. * @throws CoreException */ long getTimestamp() throws CoreException; /** * Hash of the file contents when the file was indexed. * @return 64-bit hash of the file content. * @throws CoreException * @since 5.2 */ long getContentsHash() throws CoreException; /** * @deprecated Returns 0. */ @Deprecated int getScannerConfigurationHashcode() throws CoreException; /** * Returns the hash-code of the file encoding that was used to parse the file. * <code>0</code> will be returned in case the hash-code is unknown. * @return the hash-code of the file encoding or <code>0</code>. * @since 5.3 */ int getEncodingHashcode() throws CoreException; /** * Find all names within the given range. */ IIndexName[] findNames(int offset, int length) throws CoreException; /** * Returns the include that was used to parse this file, may be <code>null</code>. */ IIndexInclude getParsedInContext() throws CoreException; /** * Returns the id of the linkage this file was parsed in. * @since 5.0 */ int getLinkageID() throws CoreException; }