/*******************************************************************************
* Copyright (c) 2008, 2009 Wind River 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
*
* Contributors:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.dsf.debug.service.command;
import org.eclipse.cdt.dsf.datamodel.IDMContext;
import org.eclipse.cdt.dsf.datamodel.IDMEvent;
import org.eclipse.cdt.dsf.service.IDsfService;
/**
* Service which acts as a command control.
*
* @since 1.1
*/
public interface ICommandControlService extends ICommandControl, IDsfService {
/**
* Context representing a command control service. All contexts which
* originate from a given command control service, should have that
* control's context in their hierarchy.
*
* @see ICommandControlService#getContext()
*/
public interface ICommandControlDMContext extends IDMContext {
/**
* Returns the ID of the command control that this context
* represents.
*/
public String getCommandControlId();
}
/**
* Event indicating that the back end process has started.
*/
public interface ICommandControlInitializedDMEvent extends IDMEvent<ICommandControlDMContext> {};
/**
* Event indicating that the back end process has terminated.
*/
public interface ICommandControlShutdownDMEvent extends IDMEvent<ICommandControlDMContext> {};
/**
* Returns the identifier of this command control service. It can be used
* to distinguish between multiple instances of command control services.
*/
public String getId();
/**
* returns the context representing this command control.
*/
public ICommandControlDMContext getContext();
/**
* Returns whether this command control is currently active. A command
* control service is active if it has been initialized and has not yet
* shut down.
* @return
*/
public boolean isActive();
}