summaryrefslogtreecommitdiff
path: root/java/demo/Ice/session/SessionFactoryI.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2005-04-22 01:20:17 +0000
committerMatthew Newhook <matthew@zeroc.com>2005-04-22 01:20:17 +0000
commitdc5537043daa806abe195371d5b364a85f2636ef (patch)
treec98b906304dd4af221947846b7a05d0a8426e912 /java/demo/Ice/session/SessionFactoryI.java
parentremoved unnecessary header. (diff)
downloadice-dc5537043daa806abe195371d5b364a85f2636ef.tar.bz2
ice-dc5537043daa806abe195371d5b364a85f2636ef.tar.xz
ice-dc5537043daa806abe195371d5b364a85f2636ef.zip
updated java version of demo.
Diffstat (limited to 'java/demo/Ice/session/SessionFactoryI.java')
-rw-r--r--java/demo/Ice/session/SessionFactoryI.java122
1 files changed, 4 insertions, 118 deletions
diff --git a/java/demo/Ice/session/SessionFactoryI.java b/java/demo/Ice/session/SessionFactoryI.java
index f130899fe76..417e5800984 100644
--- a/java/demo/Ice/session/SessionFactoryI.java
+++ b/java/demo/Ice/session/SessionFactoryI.java
@@ -11,59 +11,12 @@ import Demo.*;
class SessionFactoryI extends _SessionFactoryDisp
{
- private static class ReapThread extends Thread
- {
- ReapThread(SessionFactoryI factory, long timeout)
- {
- _timeout = timeout;
- _factory = factory;
- }
-
- public synchronized void
- run()
- {
- while(!_terminated)
- {
- try
- {
- wait(_timeout);
- }
- catch(InterruptedException e)
- {
- }
- if(!_terminated)
- {
- _factory.reap();
- }
- }
- }
-
- synchronized void
- terminate()
- {
- _terminated = true;
- notify();
- }
-
- private boolean _terminated = false;
- final private long _timeout;
- final private SessionFactoryI _factory;
- };
-
- public
- SessionFactoryI(Ice.ObjectAdapter adapter)
- {
- _adapter = adapter;
- _reapThread = new ReapThread(this, _timeout);
- _reapThread.start();
- }
-
public synchronized SessionPrx
- create(Ice.Current c)
+ create(String name, Ice.Current c)
{
- SessionI session = new SessionI(_adapter, _timeout);
- SessionPrx proxy = SessionPrxHelper.uncheckedCast(_adapter.addWithUUID(session));
- _sessions.add(new SessionId(session, proxy.ice_getIdentity()));
+ SessionI session = new SessionI(name);
+ SessionPrx proxy = SessionPrxHelper.uncheckedCast(c.adapter.addWithUUID(session));
+ ReapThread.instance().add(proxy, session);
return proxy;
}
@@ -73,71 +26,4 @@ class SessionFactoryI extends _SessionFactoryDisp
System.out.println("Shutting down...");
c.adapter.getCommunicator().shutdown();
}
-
- synchronized public void
- destroy()
- {
- _reapThread.terminate();
- try
- {
- _reapThread.join();
- }
- catch(InterruptedException e)
- {
- }
-
- java.util.Iterator p = _sessions.iterator();
- while(p.hasNext())
- {
- SessionId s = (SessionId)p.next();
- s.session.destroyCallback();
-
- // When the session factory is destroyed the OA is
- // deactivated and all servants have been removed so
- // calling remove on the OA is not necessary.
- }
- _sessions.clear();
- }
-
- synchronized private void
- reap()
- {
- java.util.Iterator p = _sessions.iterator();
- while(p.hasNext())
- {
- SessionId s = (SessionId)p.next();
- if(s.session.destroyed())
- {
- s.session.destroyCallback();
- try
- {
- _adapter.remove(s.id);
- }
- catch(Ice.ObjectAdapterDeactivatedException e)
- {
- // This method can be called while the server is
- // shutting down, in which case this exception is
- // expected.
- }
- p.remove();
- }
- }
- }
-
-
- final private long _timeout = 10 * 1000; // 10 seconds.
- final private Ice.ObjectAdapter _adapter;
- private ReapThread _reapThread;
-
- private static class SessionId
- {
- SessionId(SessionI s, Ice.Identity i)
- {
- session = s;
- id = i;
- }
- final SessionI session;
- final Ice.Identity id;
- };
- private java.util.List _sessions = new java.util.LinkedList();
}