package org.jacorb.test.bugs.bugjac660;
import org.omg.CORBA.INTERNAL;
import org.omg.IOP.Codec;
import org.omg.IOP.ServiceContext;
import org.omg.PortableInterceptor.ForwardRequest;
import org.omg.PortableInterceptor.ServerRequestInfo;
import org.omg.PortableInterceptor.ServerRequestInterceptor;
import org.slf4j.Logger;
import org.jacorb.orb.ORB;
public class ServerInterceptor
extends org.omg.CORBA.LocalObject
implements ServerRequestInterceptor
{
private int slot_id = -1;
private Codec codec = null;
private ORB orb = null;
private Logger logger;
public ServerInterceptor(ORB orb, int slot_id, Codec codec)
{
this.slot_id = slot_id;
this.codec = codec;
this.orb = orb;
logger = orb.getConfiguration ().getLogger("org.jacorb.test");
}
// implementation of org.omg.PortableInterceptor.InterceptorOperations interface
public String name()
{
return "ServerInterceptor";
}
public void destroy()
{
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: destroy()");
}
public void receive_request_service_contexts(ServerRequestInfo ri)
throws ForwardRequest
{
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: receive_request_service_contexts()");
try
{
ServiceContext ctx =
ri.get_request_service_context (4711);
ri.set_slot( slot_id, codec.decode( ctx.context_data ));
logger.debug("[" + Thread.currentThread()
+ "] ServerInterceptor: receive_request_service_contexts() - set_slot() to "
+ codec.decode( ctx.context_data ));
}
catch (Exception e)
{
throw new INTERNAL (e.getMessage());
}
}
public void receive_request(ServerRequestInfo ri)
throws ForwardRequest{
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: receive_request()");
}
public void send_reply(ServerRequestInfo ri){
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: send_reply()");
try
{
org.omg.CORBA.Any any = orb.create_any();
any.insert_string( "This is a test BBB" );
ri.set_slot( slot_id, any);
logger.debug("[" + Thread.currentThread()
+ "] ServerInterceptor : send_reply() - Set_slot() to " + any);
}
catch (Exception e)
{
throw new INTERNAL (e.getMessage());
}
}
public void send_exception(ServerRequestInfo ri)
throws ForwardRequest{
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: send_exception()");
}
public void send_other(ServerRequestInfo ri)
throws ForwardRequest{
logger.debug("[" + Thread.currentThread() + "] ServerInterceptor: send_other()");
}
}// ServerInterceptor