/*******************************************************************************
* Copyright (c) 2007, 2011 Wind River Systems, 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:
* Wind River Systems - initial API and implementation
* Uwe Stieber (Wind River) - [271227] Fix compiler warnings in org.eclipse.tcf.rse
* Intel Corporation - [329654] Make all sub services operate against TCF connector service
*******************************************************************************/
package org.eclipse.tcf.internal.rse.processes;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.subsystems.IConnectorService;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.services.processes.IProcessService;
import org.eclipse.rse.subsystems.processes.core.subsystem.IHostProcessToRemoteProcessAdapter;
import org.eclipse.rse.subsystems.processes.servicesubsystem.ProcessServiceSubSystem;
import org.eclipse.rse.subsystems.processes.servicesubsystem.ProcessServiceSubSystemConfiguration;
import org.eclipse.tcf.internal.rse.ITCFService;
import org.eclipse.tcf.internal.rse.TCFConnectorService;
import org.eclipse.tcf.internal.rse.TCFConnectorServiceManager;
public class TCFProcessSubSystemConfiguration extends ProcessServiceSubSystemConfiguration {
private final TCFProcessAdapter process_adapter = new TCFProcessAdapter();
@Override
public Class<ITCFService> getServiceImplType() {
return ITCFService.class;
}
@Override
public ISubSystem createSubSystemInternal(IHost host) {
TCFConnectorService connectorService = (TCFConnectorService)getConnectorService(host);
return new ProcessServiceSubSystem(host, connectorService,
getProcessService(host), getHostProcessAdapter());
}
public IProcessService createProcessService(IHost host) {
return new TCFProcessService(host);
}
public IHostProcessToRemoteProcessAdapter getHostProcessAdapter() {
return process_adapter;
}
@Override
public IConnectorService getConnectorService(IHost host) {
return TCFConnectorServiceManager.getInstance()
.getConnectorService(host, getServiceImplType());
}
@Override
public void setConnectorService(IHost host, IConnectorService connectorService) {
TCFConnectorServiceManager.getInstance().setConnectorService(host, getServiceImplType(), connectorService);
}
}