00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IORInterceptor_Adapter_Impl.h 00006 * 00007 * $Id: IORInterceptor_Adapter_Impl.h 79241 2007-08-07 12:42:30Z johnnyw $ 00008 * 00009 * @author Jeff Parsons <parsons@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_IORINTERCEPTOR_ADAPTER_IMPL_H 00015 #define TAO_IORINTERCEPTOR_ADAPTER_IMPL_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "tao/IORInterceptor/iorinterceptor_export.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 #include "tao/IORInterceptor/IORInterceptor.h" 00026 #include "tao/IORInterceptor_Adapter.h" 00027 #include "tao/PI/Interceptor_List_T.h" 00028 #include "tao/IORInterceptor/IORInterceptor_Details.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 namespace TAO 00033 { 00034 typedef Interceptor_List< ::PortableInterceptor::IORInterceptor, 00035 IORInterceptor_Details> 00036 IORInterceptor_List; 00037 } 00038 00039 class TAO_Root_POA; 00040 00041 /** 00042 * @class TAO_IORInterceptor_Adapter_Impl 00043 * 00044 * @brief TAO_IORInterceptor_Adapter_Impl. 00045 * 00046 * Class that adapts various functions involving the PortableInterceptor 00047 * interfaces IORInfo and IORInterceptor. This is the derived class 00048 * that contains the actual implementations. 00049 */ 00050 class TAO_IORInterceptor_Adapter_Impl 00051 : public TAO_IORInterceptor_Adapter 00052 { 00053 public: 00054 virtual ~TAO_IORInterceptor_Adapter_Impl (void); 00055 00056 virtual void add_interceptor ( 00057 PortableInterceptor::IORInterceptor_ptr interceptor); 00058 00059 virtual void add_interceptor ( 00060 PortableInterceptor::IORInterceptor_ptr interceptor, 00061 const CORBA::PolicyList& policies); 00062 00063 virtual void destroy_interceptors (void); 00064 00065 virtual void establish_components (TAO_Root_POA *poa ); 00066 00067 /// Call the IORInterceptor::components_established() method on all 00068 /// registered IORInterceptors. 00069 virtual void components_established (PortableInterceptor::IORInfo_ptr info); 00070 00071 virtual void adapter_state_changed ( 00072 const TAO::ObjectReferenceTemplate_Array &array_obj_ref_template, 00073 PortableInterceptor::AdapterState state); 00074 00075 virtual void adapter_manager_state_changed ( 00076 const char * id, 00077 PortableInterceptor::AdapterState state); 00078 00079 private: 00080 /// List of IOR interceptors maintained 00081 TAO::IORInterceptor_List ior_interceptor_list_; 00082 }; 00083 00084 TAO_END_VERSIONED_NAMESPACE_DECL 00085 00086 #include /**/ "ace/post.h" 00087 00088 #endif /* TAO_IORINTERCEPTOR_ADAPTER_IMPL_H */