IORInterceptor_Adapter.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    IORInterceptor_Adapter.h
00006  *
00007  *  IORInterceptor_Adapter.h,v 1.22 2006/04/26 13:42:42 mesnier_p Exp
00008  *
00009  *  @author  Jeff Parsons <parsons@cs.wustl.edu>
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_IORINTERCEPTOR_ADAPTER_H
00015 #define TAO_IORINTERCEPTOR_ADAPTER_H
00016 
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "tao/TAO_Export.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "tao/SystemException.h"
00026 #include "tao/PI_ForwardC.h"
00027 
00028 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00029 template <class T> class ACE_Array_Base;
00030 ACE_END_VERSIONED_NAMESPACE_DECL
00031 
00032 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00033 
00034 namespace PortableInterceptor
00035 {
00036   class IORInterceptor;
00037   typedef IORInterceptor *IORInterceptor_ptr;
00038   class IORInfo;
00039   typedef IORInfo *IORInfo_ptr;
00040   class ObjectReferenceTemplate;
00041 }
00042 
00043 namespace TAO
00044 {
00045   typedef ACE_Array_Base< ::PortableInterceptor::ObjectReferenceTemplate*>
00046     ObjectReferenceTemplate_Array;
00047 }
00048 
00049 class TAO_Root_POA;
00050 
00051 /**
00052  * @class TAO_IORInterceptor_Adapter
00053  *
00054  * @brief TAO_IORInterceptor_Adapter.
00055  *
00056  * Class that adapts various functions involving the PortableInterceptor
00057  * interfaces IORInfo and IORInterceptor. This is a base class for
00058  * the actual implementation in the TAO_IORInterceptor library.
00059  */
00060 class TAO_Export TAO_IORInterceptor_Adapter
00061 {
00062 public:
00063   virtual ~TAO_IORInterceptor_Adapter (void);
00064 
00065   virtual void add_interceptor (
00066       PortableInterceptor::IORInterceptor_ptr interceptor
00067       ACE_ENV_ARG_DECL
00068     ) = 0;
00069 
00070   virtual void add_interceptor (
00071       PortableInterceptor::IORInterceptor_ptr interceptor,
00072       const CORBA::PolicyList& policies
00073       ACE_ENV_ARG_DECL
00074     ) = 0;
00075 
00076   virtual void destroy_interceptors (
00077       ACE_ENV_SINGLE_ARG_DECL
00078       ) = 0;
00079 
00080   /// Call the IORInterceptor::establish_components() method on all
00081   /// registered IORInterceptors.
00082   /**
00083    * This method calls IORInterceptor::establish_components() method
00084    * on all registered IORInterceptors, and
00085    * IORInterceptor::components_established() once the former is
00086    * completed.
00087    */
00088   virtual void establish_components (TAO_Root_POA *poa ACE_ENV_ARG_DECL)
00089     ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00090 
00091   /// Call the IORInterceptor::components_established() method on all
00092   /// registered IORInterceptors.
00093   virtual void components_established (PortableInterceptor::IORInfo_ptr info
00094                                        ACE_ENV_ARG_DECL)
00095     ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00096 
00097   virtual void adapter_state_changed (
00098       const TAO::ObjectReferenceTemplate_Array &array_obj_ref_template,
00099       PortableInterceptor::AdapterState state
00100       ACE_ENV_ARG_DECL)
00101     ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00102 
00103   virtual void adapter_manager_state_changed (
00104       const char * id,
00105       PortableInterceptor::AdapterState state
00106       ACE_ENV_ARG_DECL)
00107     ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00108 };
00109 
00110 TAO_END_VERSIONED_NAMESPACE_DECL
00111 
00112 #include /**/ "ace/post.h"
00113 #endif /* TAO_IORINTERCEPTOR_ADAPTER_H */

Generated on Thu Nov 9 11:54:14 2006 for TAO by doxygen 1.3.6