/*******************************************************************************
* Copyright (c) 2012 Xilinx, 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:
* Xilinx - initial API and implementation
*******************************************************************************/
package org.eclipse.tcf.debug.ui;
import org.eclipse.debug.core.IRequest;
/**
* TCF clients can implement ITCFPresentationProvider to participate in presentation of TCF debug model.
* The implementation is registered through extension point: org.eclipse.tcf.debug.ui.presentation_provider
*/
public interface ITCFPresentationProvider {
/**
* Debug model created notification.
* @param model - the model.
* @return - true if the client wants to listen for updateStarted/updateComplete events on the model,
* returning false stops ant further client notifications from that model.
*/
boolean onModelCreated(ITCFModel model);
/**
* Debug model disposed notification.
* @param model - the model.
*/
void onModelDisposed(ITCFModel model);
/**
* This method is called for every presentation data request before
* the debug model starts to fill the request with the requested data.
* @param request - data request from the debugger UI.
* @return - true if the client wants the debug model to continue processing the
* request. If the client returns false, it is his responsibility to fill
* the request and to call "IRequest.done".
*/
boolean updateStarted(IRequest request);
/**
* This method is called for every presentation data request after
* the debug model has filled the request with the requested data,
* but before it calls "done" method of the request.
* Clients can modify the data that is stored in the request object.
* @param request - data request from the debugger UI.
* @return - true if the client wants the debug model to continue processing the
* request. If the client returns false, it is his responsibility to call "IRequest.done".
*/
boolean updateComplete(IRequest request);
}