diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-07-01 11:30:20 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-07-01 11:30:20 +0000 |
commit | e3f21b6865548a354440b381687c7cd6fccd0673 (patch) | |
tree | 0436b9c55dd58079733fad5e025bba863e68f0d2 /TAO/tao/ServerRequestInterceptor_Adapter.h | |
parent | 973606aa062af218c71c40a86fe7aed260fb6bf0 (diff) | |
download | ATCD-e3f21b6865548a354440b381687c7cd6fccd0673.tar.gz |
ChangeLogTag: Fri Jul 1 11:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/ServerRequestInterceptor_Adapter.h')
-rw-r--r-- | TAO/tao/ServerRequestInterceptor_Adapter.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/TAO/tao/ServerRequestInterceptor_Adapter.h b/TAO/tao/ServerRequestInterceptor_Adapter.h new file mode 100644 index 00000000000..e09f7c163f1 --- /dev/null +++ b/TAO/tao/ServerRequestInterceptor_Adapter.h @@ -0,0 +1,119 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file ServerRequestInterceptor_Adapter.h + * + * $Id$ + * + * This file an adapter class to simplify the support of + * interceptors. + * + * @author Johnny Willemsen <jwillemsen@remedy.nl> + */ +//============================================================================= + +#ifndef TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H +#define TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H + +#include /**/ "ace/pre.h" + +#include "TAO_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/CORBA_macros.h" + +namespace PortableInterceptor +{ + class ServerRequestInterceptor; + typedef ServerRequestInterceptor *ServerRequestInterceptor_ptr; +} + +class TAO_ServerRequest; + +namespace TAO +{ + class ServerRequestInfo; + + /** + * @class ServerRequestInterceptor_Adapter + */ + class TAO_Export ServerRequestInterceptor_Adapter + { + public: + virtual ~ServerRequestInterceptor_Adapter (void); + + /** + * @name PortableInterceptor Server Side Interception Points + * + * Each of these methods corresponds to a client side interception + * point. + */ + //@{ +#if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1 + /// This method implements the "starting" server side interception + /// point. It will be used as the first interception point and it is + /// proprietary to TAO. + /// @@ Will go away once Bug 1369 is fixed + virtual void tao_ft_interception_point ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo *ri , + CORBA::OctetSeq_out oc + ACE_ENV_ARG_DECL) = 0; +#endif /*TAO_HAS_EXTENDED_FT_INTERCEPTORS*/ + + /// 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. + virtual void receive_request_service_contexts ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo *ri + ACE_ENV_ARG_DECL) = 0; + + /// This method an "intermediate" server side interception point. + virtual void receive_request ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo *ri + ACE_ENV_ARG_DECL) = 0; + + /// This method implements one of the "ending" server side + /// interception points. + virtual void send_reply ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo *ri + ACE_ENV_ARG_DECL) = 0; + + /// This method implements one of the "ending" server side + /// interception points. + virtual void send_exception ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo * ri + ACE_ENV_ARG_DECL) = 0; + + /// This method implements one of the "ending" server side + /// interception points. + virtual void send_other ( + TAO_ServerRequest &server_request, + TAO::ServerRequestInfo * ri + ACE_ENV_ARG_DECL) = 0; + //@} + + /// Register an interceptor. + virtual void add_interceptor ( + PortableInterceptor::ServerRequestInterceptor_ptr interceptor + ACE_ENV_ARG_DECL) = 0; + + virtual void destroy_interceptors (ACE_ENV_SINGLE_ARG_DECL) = 0; + }; + +} +#include /**/ "ace/post.h" + +#endif /* TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H */ |