/*
* 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 provider of QMake information.
*
* This class is not meant to be implemented.
*/
public interface IQMakeProjectInfo {
/**
* Add a listener that notifies about possible changes of IQMakeInfo retrieved from getActualInfo() method.
*
* @param listener the listener
*/
void addListener(IQMakeProjectInfoListener listener);
/**
* Removes a listener that was added via addListener() method.
*
* @param listener the listener
*/
void removeListener(IQMakeProjectInfoListener listener);
/**
* Returns an actual QMake information.
*
* @return non-null IQMakeInfo instance representing the actual QMake information
*/
IQMakeInfo getActualInfo();
/**
* Updates the actual QMake information and returns it.
*
* Note that this is a long-term operation and the method call is blocked until an actual QMake information is calculated.
*
* @return non-null IQMakeInfo instance representing the actual QMake information calculated at the time of this method call.
*/
IQMakeInfo updateActualInfo();
}