/************************************************************************** * TraceableLocator * * $Workfile$ * $Revision: 1.15 $ * $Date: 2005/10/05 07:39:37 $ * * Copyright (C) 2001 CERN - European Organization for Nuclear Research * All rights reserved. **************************************************************************/ package com.c2kernel.entity; import java.nio.ByteBuffer; import java.sql.Timestamp; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.common.SystemKey; import com.c2kernel.lookup.ItemPath; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; /************************************************************************** * * @author $Author: abranson $ $Date: 2005/10/05 07:39:37 $ * @version $Revision: 1.15 $ **************************************************************************/ public class TraceableLocator extends org.omg.PortableServer.ServantLocatorPOA { /************************************************************************** * **************************************************************************/ public TraceableLocator() { } /************************************************************************** * **************************************************************************/ @Override public org.omg.PortableServer.Servant preinvoke( byte[] oid, org.omg.PortableServer.POA poa, String operation, org.omg.PortableServer.ServantLocatorPackage.CookieHolder cookie ) { ByteBuffer bb = ByteBuffer.wrap(oid); long msb = bb.getLong(); long lsb = bb.getLong(); ItemPath syskey = new ItemPath(new SystemKey(msb, lsb)); Logger.msg(1,"==========================================================="); Logger.msg(1,"Item called at "+new Timestamp( System.currentTimeMillis()) +": " + operation + "(" + syskey + ")." ); try { return Gateway.getCorbaServer().getItem(syskey); } catch (ObjectNotFoundException ex) { Logger.error("ObjectNotFoundException::TraceableLocator::preinvoke() " + ex.toString()); throw new org.omg.CORBA.OBJECT_NOT_EXIST(); } } /************************************************************************** * **************************************************************************/ @Override public void postinvoke( byte[] oid, org.omg.PortableServer.POA poa, String operation, java.lang.Object the_cookie, org.omg.PortableServer.Servant the_servant ) { } }