diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-04-22 01:20:17 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-04-22 01:20:17 +0000 |
commit | dc5537043daa806abe195371d5b364a85f2636ef (patch) | |
tree | c98b906304dd4af221947846b7a05d0a8426e912 /java/demo/Ice/session/SessionFactoryI.java | |
parent | removed unnecessary header. (diff) | |
download | ice-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.java | 122 |
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(); } |