Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / tao / IORInterceptor_Adapter.h
blobf85484f38a0379fba866f0f7cdf12189383cd30e
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file IORInterceptor_Adapter.h
7 * @author Jeff Parsons <parsons@cs.wustl.edu>
8 */
9 //=============================================================================
12 #ifndef TAO_IORINTERCEPTOR_ADAPTER_H
13 #define TAO_IORINTERCEPTOR_ADAPTER_H
15 #include /**/ "ace/pre.h"
17 #include /**/ "tao/TAO_Export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/PI_ForwardC.h"
24 #include "tao/Policy_ForwardC.h"
25 #include "tao/TAO_Export.h"
27 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
28 template <class T> class ACE_Array_Base;
29 ACE_END_VERSIONED_NAMESPACE_DECL
31 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
33 namespace PortableInterceptor
35 class IORInterceptor;
36 typedef IORInterceptor *IORInterceptor_ptr;
37 class IORInfo;
38 typedef IORInfo *IORInfo_ptr;
39 class ObjectReferenceTemplate;
42 namespace TAO
44 typedef ACE_Array_Base< ::PortableInterceptor::ObjectReferenceTemplate*>
45 ObjectReferenceTemplate_Array;
48 class TAO_Root_POA;
50 /**
51 * @class TAO_IORInterceptor_Adapter
53 * @brief TAO_IORInterceptor_Adapter.
55 * Class that adapts various functions involving the PortableInterceptor
56 * interfaces IORInfo and IORInterceptor. This is a base class for
57 * the actual implementation in the TAO_IORInterceptor library.
59 class TAO_Export TAO_IORInterceptor_Adapter
61 public:
62 virtual ~TAO_IORInterceptor_Adapter ();
64 virtual void add_interceptor (
65 PortableInterceptor::IORInterceptor_ptr interceptor) = 0;
67 virtual void add_interceptor (
68 PortableInterceptor::IORInterceptor_ptr interceptor,
69 const CORBA::PolicyList& policies) = 0;
71 virtual void destroy_interceptors () = 0;
73 /// Call the IORInterceptor::establish_components() method on all
74 /// registered IORInterceptors.
75 /**
76 * This method calls IORInterceptor::establish_components() method
77 * on all registered IORInterceptors, and
78 * IORInterceptor::components_established() once the former is
79 * completed.
81 virtual void establish_components (TAO_Root_POA *poa) = 0;
83 /// Call the IORInterceptor::components_established() method on all
84 /// registered IORInterceptors.
85 virtual void components_established (PortableInterceptor::IORInfo_ptr info) = 0;
87 virtual void adapter_state_changed (
88 const TAO::ObjectReferenceTemplate_Array &array_obj_ref_template,
89 PortableInterceptor::AdapterState state) = 0;
91 virtual void adapter_manager_state_changed (
92 const char * id,
93 PortableInterceptor::AdapterState state) = 0;
96 TAO_END_VERSIONED_NAMESPACE_DECL
98 #include /**/ "ace/post.h"
99 #endif /* TAO_IORINTERCEPTOR_ADAPTER_H */