package org.jacorb.util.tracing;
/*
* JacORB - a free Java ORB
*
* Copyright (C) 1999-2014 Gerald Brose / The JacORB Team.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
import org.omg.IOP.Codec;
import org.omg.PortableInterceptor.ServerRequestInfo;
import org.omg.PortableInterceptor.ServerRequestInterceptor;
public class ServerTraceInterceptor
extends org.omg.CORBA.LocalObject
implements ServerRequestInterceptor
{
private int slot_id;
private Codec codec = null;
public ServerTraceInterceptor( int slot_id, Codec codec )
{
this.slot_id = slot_id;
this.codec = codec;
}
public String name()
{
return "ServerTraceInterceptor";
}
public void destroy()
{
}
public void receive_request_service_contexts( ServerRequestInfo ri )
throws org.omg.PortableInterceptor.ForwardRequest
{
System.out.println("SI in operation <" + ri.operation() + ">");
try
{
System.out.println("Request for op " + ri.operation());
org.omg.IOP.ServiceContext ctx =
ri.get_request_service_context( TracingContextID.value );
ri.set_slot(slot_id, codec.decode(ctx.context_data));
ri.add_reply_service_context( ctx, true );
}
catch (org.omg.CORBA.BAD_PARAM bp)
{
//ignore, SC not present
System.out.println("ServerRequestInterceptor: " + bp);
}
catch( Exception e )
{
System.err.println("No service context in operation <" + ri.operation() + ">");
e.printStackTrace();
}
}
public void receive_request( ServerRequestInfo ri )
throws org.omg.PortableInterceptor.ForwardRequest
{
}
public void send_reply(org.omg.PortableInterceptor.ServerRequestInfo ri)
{
}
public void send_exception(org.omg.PortableInterceptor.ServerRequestInfo ri)
throws org.omg.PortableInterceptor.ForwardRequest
{
}
public void send_other(org.omg.PortableInterceptor.ServerRequestInfo ri)
throws org.omg.PortableInterceptor.ForwardRequest
{
}
}