From 8eeaf3069e2368a9e0a7c143da404fd6f5a1c513 Mon Sep 17 00:00:00 2001 From: slewis Date: Thu, 13 Nov 2008 09:04:24 +0000 Subject: Added handler for disconnect reporting --- .../ecf/server/generic/AbstractGenericServer.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java index e091ae0c9..6dd9bff1e 100644 --- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java @@ -3,6 +3,8 @@ package org.eclipse.ecf.server.generic; import java.io.IOException; import java.security.PermissionCollection; import java.util.*; +import org.eclipse.ecf.core.IContainerListener; +import org.eclipse.ecf.core.events.*; import org.eclipse.ecf.core.identity.*; import org.eclipse.ecf.core.security.IConnectHandlerPolicy; import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; @@ -12,10 +14,35 @@ public abstract class AbstractGenericServer { protected class GenericServerContainer extends TCPServerSOContainer { + private IContainerListener departedListener = new IContainerListener() { + public void handleEvent(IContainerEvent event) { + if (event instanceof IContainerDisconnectedEvent) { + IContainerDisconnectedEvent de = (IContainerDisconnectedEvent) event; + handleDisconnect(de.getTargetID()); + } else if (event instanceof IContainerEjectedEvent) { + IContainerEjectedEvent de = (IContainerEjectedEvent) event; + handleEject(de.getTargetID()); + } + } + }; + public GenericServerContainer(ISharedObjectContainerConfig config, TCPServerSOContainerGroup listener, String path, int keepAlive) { super(config, listener, path, keepAlive); + addListener(departedListener); + } + + public void dispose() { + removeListener(departedListener); + super.dispose(); } + } + + protected void handleDisconnect(ID targetID) { + // nothing to do + } + protected void handleEject(ID targetID) { + // nothing to do } protected TCPServerSOContainerGroup serverGroup; -- cgit v1.2.3