IORInterceptor_Adapter.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    IORInterceptor_Adapter.h
00006  *
00007  *  $Id: IORInterceptor_Adapter.h 76995 2007-02-11 12:51:42Z johnnyw $
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/PI_ForwardC.h"
00026 #include "tao/Policy_ForwardC.h"
00027 #include "tao/TAO_Export.h"
00028 
00029 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00030 template <class T> class ACE_Array_Base;
00031 ACE_END_VERSIONED_NAMESPACE_DECL
00032 
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034 
00035 namespace PortableInterceptor
00036 {
00037   class IORInterceptor;
00038   typedef IORInterceptor *IORInterceptor_ptr;
00039   class IORInfo;
00040   typedef IORInfo *IORInfo_ptr;
00041   class ObjectReferenceTemplate;
00042 }
00043 
00044 namespace TAO
00045 {
00046   typedef ACE_Array_Base< ::PortableInterceptor::ObjectReferenceTemplate*>
00047     ObjectReferenceTemplate_Array;
00048 }
00049 
00050 class TAO_Root_POA;
00051 
00052 /**
00053  * @class TAO_IORInterceptor_Adapter
00054  *
00055  * @brief TAO_IORInterceptor_Adapter.
00056  *
00057  * Class that adapts various functions involving the PortableInterceptor
00058  * interfaces IORInfo and IORInterceptor. This is a base class for
00059  * the actual implementation in the TAO_IORInterceptor library.
00060  */
00061 class TAO_Export TAO_IORInterceptor_Adapter
00062 {
00063 public:
00064   virtual ~TAO_IORInterceptor_Adapter (void);
00065 
00066   virtual void add_interceptor (
00067       PortableInterceptor::IORInterceptor_ptr interceptor) = 0;
00068 
00069   virtual void add_interceptor (
00070       PortableInterceptor::IORInterceptor_ptr interceptor,
00071       const CORBA::PolicyList& policies) = 0;
00072 
00073   virtual void destroy_interceptors (void) = 0;
00074 
00075   /// Call the IORInterceptor::establish_components() method on all
00076   /// registered IORInterceptors.
00077   /**
00078    * This method calls IORInterceptor::establish_components() method
00079    * on all registered IORInterceptors, and
00080    * IORInterceptor::components_established() once the former is
00081    * completed.
00082    */
00083   virtual void establish_components (TAO_Root_POA *poa) = 0;
00084 
00085   /// Call the IORInterceptor::components_established() method on all
00086   /// registered IORInterceptors.
00087   virtual void components_established (PortableInterceptor::IORInfo_ptr info)
00088     = 0;
00089 
00090   virtual void adapter_state_changed (
00091       const TAO::ObjectReferenceTemplate_Array &array_obj_ref_template,
00092       PortableInterceptor::AdapterState state) = 0;
00093 
00094   virtual void adapter_manager_state_changed (
00095       const char * id,
00096       PortableInterceptor::AdapterState state) = 0;
00097 };
00098 
00099 TAO_END_VERSIONED_NAMESPACE_DECL
00100 
00101 #include /**/ "ace/post.h"
00102 #endif /* TAO_IORINTERCEPTOR_ADAPTER_H */

Generated on Sun Jan 27 13:07:33 2008 for TAO by doxygen 1.3.6