com.sun.jini.jeri.internal.runtime
Class ObjectTable

java.lang.Object
  extended by com.sun.jini.jeri.internal.runtime.ObjectTable

final class ObjectTable
extends Object

A table of exported remote objects.

Author:
Sun Microsystems, Inc.

Nested Class Summary
private  class ObjectTable.DgcServerImpl
           
private  class ObjectTable.LeaseChecker
           
(package private) static class ObjectTable.NoSuchObject
           
 
Field Summary
private  ImplRefManager implRefManager
          table of references to impls exported with DGC
private  JvmLifeSupport keepAliveCount
          number of objects exported with keepAlive == true
private  Thread leaseChecker
          thread to check for expired leases
private  java.util.concurrent.ConcurrentMap<Uuid,Lease> leaseTable
          maps client ID to Lease (lock guards leaseChecker too)
private static Logger logger
           
private  Object requestDispatchersLock
          lock to serialize request dispatcher reservation per export, so that a partial export will not cause another export to fail unnecessarily
private  Boolean running
          thread guard
 
Constructor Summary
ObjectTable()
           
 
Method Summary
(package private)  RequestDispatcher createRequestDispatcher(Unreferenced unrefCallback)
           
(package private)  Target export(Remote impl, RequestDispatcher[] requestDispatchers, boolean allowDGC, boolean keepAlive, Uuid id)
           
(package private)  DgcServer getDgcServer(DgcRequestDispatcher dgdRD)
           
private  DgcRequestDispatcher getRD(RequestDispatcher requestDispatcher)
           
(package private)  boolean isReferenced(RequestDispatcher requestDispatcher)
           
(package private)  void registerTarget(Target target, Uuid clientID)
           
(package private)  void unregisterTarget(Target target, Uuid clientID)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logger logger

requestDispatchersLock

private final Object requestDispatchersLock
lock to serialize request dispatcher reservation per export, so that a partial export will not cause another export to fail unnecessarily


implRefManager

private final ImplRefManager implRefManager
table of references to impls exported with DGC


keepAliveCount

private final JvmLifeSupport keepAliveCount
number of objects exported with keepAlive == true


leaseTable

private final java.util.concurrent.ConcurrentMap<Uuid,Lease> leaseTable
maps client ID to Lease (lock guards leaseChecker too)


leaseChecker

private Thread leaseChecker
thread to check for expired leases


running

private Boolean running
thread guard

Constructor Detail

ObjectTable

ObjectTable()
Method Detail

createRequestDispatcher

RequestDispatcher createRequestDispatcher(Unreferenced unrefCallback)

isReferenced

boolean isReferenced(RequestDispatcher requestDispatcher)

getDgcServer

DgcServer getDgcServer(DgcRequestDispatcher dgdRD)

export

Target export(Remote impl,
              RequestDispatcher[] requestDispatchers,
              boolean allowDGC,
              boolean keepAlive,
              Uuid id)
        throws ExportException
Throws:
ExportException

getRD

private DgcRequestDispatcher getRD(RequestDispatcher requestDispatcher)

registerTarget

void registerTarget(Target target,
                    Uuid clientID)

unregisterTarget

void unregisterTarget(Target target,
                      Uuid clientID)


Copyright 2007-2010, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.