/*******************************************************************************
* Copyright (c) 2013 Luigi Sgro. 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:
* Luigi Sgro - initial API and implementation
******************************************************************************/
package com.quantcomponents.core.remote;
import com.quantcomponents.core.model.ITaskMonitor;
/**
* Local interface for {@link ITaskMonitorHost}
* This interface is used on the client side in a distributed configuration,
* to make the UI task monitors visible to the server.
*
*/
public interface ITaskMonitorHostLocal {
/**
* Add a real task monitor to the host, and receive a handle to it
* in exchange.
* The handle will then be used by the server side to communicate to
* this object, which in turn will operate the original task monitor.
* @param taskMonitor a task monitor from the UI
* @return a handle for this task monitor, to be used in the communications
* with the server
*/
ServiceHandle<ITaskMonitorHost> addTaskMonitor(ITaskMonitor taskMonitor);
/**
* Deletes a task monitor corresponding to the handle.
* This method is important to detach listeners and free remote resources.
* @param taskMonitorHandle the handle of the task monitor to delete
*/
void deleteTaskMonitor(ServiceHandle<ITaskMonitorHost> taskMonitorHandle);
}