package test.memoryusage;
import org.omg.CORBA.*;
import org.omg.CORBA.ORBPackage.*;
import org.omg.PortableServer.*;
public class SessionFactoryServant
extends SessionFactoryPOA
{
private ORB orb;
private POA poa;
public SessionFactoryServant( ORB orb, org.omg.PortableServer.POA poa)
{
this.orb = orb;
this.poa = poa;
}
public Session get_Session(String userName, String fullName,
String emailAddress, String ip)
{
synchronized (this)
{
try
{
Session session = null;
SessionServant servant = new SessionServant();
//poa.activate_object(servant);
org.omg.CORBA.Object o = poa.servant_to_reference( servant );
session = SessionHelper.narrow(o);
//session = servant._this(orb);
return session;
}
catch( Exception e )
{
e.printStackTrace();
throw new org.omg.CORBA.UNKNOWN();
}
}
}
public synchronized void releaseSession( Session session )
{
try
{
poa.deactivate_object(poa.reference_to_id( session ));
// session._release();
}
catch(org.omg.PortableServer.POAPackage.WrongAdapter sna)
{
System.out.println(sna);
}
catch(org.omg.PortableServer.POAPackage.ObjectNotActive ona)
{
System.out.println(ona);
}
catch(org.omg.PortableServer.POAPackage.WrongPolicy wp)
{
System.out.println(wp);
}
}
}