/*******************************************************************************
* 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.Launch;
import org.eclipse.swt.widgets.Display;
import org.eclipse.tcf.protocol.IChannel;
/**
* TCFModel represents remote target state as it is known to host.
* The main job of the model is caching remote data,
* keeping the cache in a coherent state,
* and feeding UI with up-to-date data.
*
* @noimplement
*/
public interface ITCFModel {
/**
* Get TCF communication channel that is used by this model.
* @return IChannel interface.
*/
IChannel getChannel();
/**
* Get display that is used by this model.
* @return Display object.
*/
Display getDisplay();
/**
* Get launch object associated with this model.
* @return Launch object.
*/
Launch getLaunch();
/**
* Get model object with given ID.
* @param id - TCF ID of remote object.
* @return ITCFObject interface or null - if model does not include such object.
* Note that the model is built lazily (on demand): getNode() can return null even if
* "id" is valid ID of existing remote object.
*/
ITCFObject getNode(String id);
}