blob: 9b0eece5983bf32693bb49aeb572dd35dbbc6c6d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 EclipseSource 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:
* EclipseSource - initial API and implementation
******************************************************************************/
/**
*
*/
package org.eclipse.ecf.server.generic;
import org.eclipse.ecf.core.IContainerListener;
import org.eclipse.ecf.core.events.*;
import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig;
import org.eclipse.ecf.provider.generic.TCPServerSOContainer;
import org.eclipse.ecf.provider.generic.TCPServerSOContainerGroup;
/**
*
* @since 2.0
*
*/
public class GenericServerContainer extends TCPServerSOContainer {
final AbstractGenericServer abstractGenericServer;
private IContainerListener departedListener = new IContainerListener() {
public void handleEvent(IContainerEvent event) {
if (event instanceof IContainerDisconnectedEvent) {
IContainerDisconnectedEvent de = (IContainerDisconnectedEvent) event;
GenericServerContainer.this.abstractGenericServer.handleDisconnect(de.getTargetID());
} else if (event instanceof IContainerEjectedEvent) {
IContainerEjectedEvent de = (IContainerEjectedEvent) event;
GenericServerContainer.this.abstractGenericServer.handleEject(de.getTargetID());
}
}
};
public GenericServerContainer(AbstractGenericServer abstractGenericServer, ISharedObjectContainerConfig config, TCPServerSOContainerGroup listener, String path, int keepAlive) {
super(config, listener, path, keepAlive);
this.abstractGenericServer = abstractGenericServer;
addListener(departedListener);
}
public void dispose() {
removeListener(departedListener);
super.dispose();
}
}