gnu.CORBA.Poa

Class AOM


public class AOM
extends Object

Implements the conception of the Active Object Map. If the POA supports the RETAIN policy, it maintains an Active Object Map, that associates Object Ids with active servants. Each association constitutes an active object. We use a single map for all POAs on the given orb.

Nested Class Summary

class
AOM.Obj
The reference data about the object, placed on the AOM.

Method Summary

AOM.Obj
add(byte[] key, gnuServantObject object, Servant servant, gnuPOA poa)
Add the new object to the repository.
AOM.Obj
add(ServantDelegateImpl delegate)
Add the new object to the repository.
AOM.Obj
add(gnuServantObject object, Servant servant, gnuPOA poa)
Add the new object to the repository.
AOM.Obj
findObject(Object stored_object)
Get the record of the stored object.
AOM.Obj
findServant(Servant servant)
Find the reference info for the given servant.
AOM.Obj
findServant(Servant servant, boolean inactive)
Find the reference info for the given servant.
protected byte[]
generateObjectKey(Object object)
Generate the object key, unique in the currently running java virtual machine.
AOM.Obj
get(byte[] key)
Get the stored object.
static byte[]
getFreeId()
Get the next free 8 byte id, surely unique between calls of this method for the currently running virtual machine.
Set<E>
keySet()
Get the map key set.
void
put(AOM.Obj obj)
Put back the definition structure that has probably been removed earlier.
void
remove(byte[] key)
Remove the given object, indiciating it by the key.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

add

public AOM.Obj add(byte[] key,
                   gnuServantObject object,
                   Servant servant,
                   gnuPOA poa)
Add the new object to the repository.
Parameters:
key - the object key.
object - the object to add.
servant - a servant, serving the given object.
poa - the POA, where the object is connected.

add

public AOM.Obj add(ServantDelegateImpl delegate)
Add the new object to the repository.
Parameters:
delegate - the delegate, providing data about the servant, key, POA and object.

add

public AOM.Obj add(gnuServantObject object,
                   Servant servant,
                   gnuPOA poa)
Add the new object to the repository. The object key is generated automatically.
Parameters:
object - the object to add.
servant - a servant, serving the given object.
poa - the poa, where the object is connected.
Returns:
the newly created object record.

findObject

public AOM.Obj findObject(Object stored_object)
Get the record of the stored object. If the object is mapped several times under the different keys, one of the mappings is used.
Parameters:
stored_object - the stored object
Returns:
the record about the stored object, null if this object is not stored here.

findServant

public AOM.Obj findServant(Servant servant)
Find the reference info for the given servant. If the servant is mapped to several objects, this returns the first found occurence.
Parameters:
servant - a servant to find.
Returns:
the servant/object/POA binding or null if no such found.

findServant

public AOM.Obj findServant(Servant servant,
                           boolean inactive)
Find the reference info for the given servant. If the servant is mapped to several objects, this returns the first found occurence.
Parameters:
servant - a servant to find.
Returns:
the servant/object/POA binding or null if no such found.

generateObjectKey

protected byte[] generateObjectKey(Object object)
Generate the object key, unique in the currently running java virtual machine. The passed object parameter is currently not in use.
Returns:
the generated key.

get

public AOM.Obj get(byte[] key)
Get the stored object.
Parameters:
key - the key (in the byte array form).
Returns:
the matching object, null if none is matching.

getFreeId

public static byte[] getFreeId()
Get the next free 8 byte id, surely unique between calls of this method for the currently running virtual machine.

keySet

public Set<E> keySet()
Get the map key set.

put

public void put(AOM.Obj obj)
Put back the definition structure that has probably been removed earlier.

remove

public void remove(byte[] key)
Remove the given object, indiciating it by the key.
Parameters:

AOM.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.