/*
* Copyright (c) 2013, 2015 QNX Software 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
*/
package org.eclipse.cdt.internal.qt.core.index;
/**
* Represents a QMake environment. It is usually created by IQMakeEnvProvider.createEnv() method for a specific project configuration.
*
* Note that IQMakeEnv has destroy method only and it is expected that the instance is already initialized in the constructor.
* This means that it may happen that IQMakeEnv instance is created and destroyed immediately.
*
* See IQMakeEnv2 interface if you want to get an explicit notification when IQMakeEnv gets really used. In that case, the instance initialization
* needs to be done in init method completely - not in the constructor.
*/
public interface IQMakeEnv {
/**
* Notifies that this environment is no longer used.
* This method should not use any workspace-lock or sync-locks that might call QMake-related structures.
*/
void destroy();
/**
* Returns an actual QMake environment information that is used for a single qmake run to retrieve QMake information.
*
* @return the actual QMake environment information
*/
QMakeEnvInfo getQMakeEnvInfo();
}