diff options
author | slewis | 2009-03-07 06:37:30 +0000 |
---|---|---|
committer | slewis | 2009-03-07 06:37:30 +0000 |
commit | b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f (patch) | |
tree | a650a112c6ce876c637cc015e1cd65708b0e4a9f /server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java | |
parent | c6d46adba3e6d184686ce717f796777b0adef931 (diff) | |
download | org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.tar.gz org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.tar.xz org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.zip |
Updates to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=267481
Diffstat (limited to 'server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java')
-rw-r--r-- | server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java new file mode 100644 index 000000000..9b0eece59 --- /dev/null +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java @@ -0,0 +1,52 @@ +/******************************************************************************* +* 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(); + } +}
\ No newline at end of file |