TAO_PI_Server 2.0.2
Public Member Functions | Private Attributes

TAO::ServerRequestInterceptor_Adapter_Impl Class Reference

ServerRequestInterceptor_Adapter_Impl. More...

#include <ServerInterceptorAdapter.h>

Inheritance diagram for TAO::ServerRequestInterceptor_Adapter_Impl:
Inheritance graph
[legend]
Collaboration diagram for TAO::ServerRequestInterceptor_Adapter_Impl:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ServerRequestInterceptor_Adapter_Impl (void)
 Constructor.
virtual void add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor)
 Register an interceptor.
virtual void add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor, const CORBA::PolicyList &policies)
virtual void destroy_interceptors (void)
virtual TAO::PICurrent_Impl * allocate_pi_current (void)
virtual void deallocate_pi_current (TAO::PICurrent_Impl *picurrent)
virtual void execute_command (TAO_ServerRequest &server_request, TAO::Upcall_Command &command)
void popTSC (TAO_ORB_Core *orb_core)
void pushTSC (TAO_ORB_Core *orb_core)
PortableInterceptor Server Side Interception Points

Each of these methods corresponds to a server side interception point.

void receive_request_service_contexts (TAO_ServerRequest &server_request, TAO::Argument *const args[], size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)
void receive_request (TAO_ServerRequest &server_request, TAO::Argument *const args[], size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)
 This method an "intermediate" server side interception point.
void send_reply (TAO_ServerRequest &server_request, TAO::Argument *const args[], size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)
void send_exception (TAO_ServerRequest &server_request, TAO::Argument *const args[], size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)
void send_other (TAO_ServerRequest &server_request, TAO::Argument *const args[], size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)

Private Attributes

ServerRequestInterceptor_List interceptor_list_
 List of registered interceptors.

Detailed Description

ServerRequestInterceptor_Adapter_Impl.

A convenient helper class to invoke registered server request interceptor(s).


Constructor & Destructor Documentation

TAO::ServerRequestInterceptor_Adapter_Impl::ServerRequestInterceptor_Adapter_Impl ( void  )

Constructor.


Member Function Documentation

void TAO::ServerRequestInterceptor_Adapter_Impl::add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr  interceptor) [virtual]

Register an interceptor.

Implements TAO::ServerRequestInterceptor_Adapter.

void TAO::ServerRequestInterceptor_Adapter_Impl::add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr  interceptor,
const CORBA::PolicyList &  policies 
) [virtual]
TAO::PICurrent_Impl * TAO::ServerRequestInterceptor_Adapter_Impl::allocate_pi_current ( void  ) [virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::deallocate_pi_current ( TAO::PICurrent_Impl *  picurrent) [virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::destroy_interceptors ( void  ) [virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::execute_command ( TAO_ServerRequest server_request,
TAO::Upcall_Command &  command 
) [virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::popTSC ( TAO_ORB_Core orb_core) [inline, virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::pushTSC ( TAO_ORB_Core orb_core) [inline, virtual]
void TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( TAO_ServerRequest server_request,
TAO::Argument *const  args[],
size_t  nargs,
void *  servant_upcall,
CORBA::TypeCode_ptr const *  exceptions,
CORBA::ULong  nexceptions 
) [virtual]

This method an "intermediate" server side interception point.

Implements TAO::ServerRequestInterceptor_Adapter.

void TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO_ServerRequest server_request,
TAO::Argument *const  args[],
size_t  nargs,
void *  servant_upcall,
CORBA::TypeCode_ptr const *  exceptions,
CORBA::ULong  nexceptions 
) [virtual]

This method implements the "intermediate" server side interception point if the above #ifdef is set to 1 and a starting intercetion point if it is not set to 1.

Note:
This method should have been the "starting" interception point according to the interceptor spec. This will be fixed once Bug 1369 is completely done.

NOTE: Yes, we have two versions of this. This is easier than messing around things in the same function, which is harder to read and could make the code buggier.

Implements TAO::ServerRequestInterceptor_Adapter.

void TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( TAO_ServerRequest server_request,
TAO::Argument *const  args[],
size_t  nargs,
void *  servant_upcall,
CORBA::TypeCode_ptr const *  exceptions,
CORBA::ULong  nexceptions 
) [virtual]

This method implements one of the "ending" server side interception points.

Implements TAO::ServerRequestInterceptor_Adapter.

void TAO::ServerRequestInterceptor_Adapter_Impl::send_other ( TAO_ServerRequest server_request,
TAO::Argument *const  args[],
size_t  nargs,
void *  servant_upcall,
CORBA::TypeCode_ptr const *  exceptions,
CORBA::ULong  nexceptions 
) [virtual]

This method implements one of the "ending" server side interception points.

Implements TAO::ServerRequestInterceptor_Adapter.

void TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( TAO_ServerRequest server_request,
TAO::Argument *const  args[],
size_t  nargs,
void *  servant_upcall,
CORBA::TypeCode_ptr const *  exceptions,
CORBA::ULong  nexceptions 
) [virtual]

This method implements one of the "ending" server side interception points.

Implements TAO::ServerRequestInterceptor_Adapter.


Member Data Documentation

ServerRequestInterceptor_List TAO::ServerRequestInterceptor_Adapter_Impl::interceptor_list_ [private]

List of registered interceptors.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines