3 // ===================================================================
5 * @file ORBInitializer_Registry_Adapter.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
9 // ===================================================================
11 #ifndef TAO_ORB_INITIALIZER_REGISTRY_ADAPTER_H
12 #define TAO_ORB_INITIALIZER_REGISTRY_ADAPTER_H
14 #include /**/ "ace/pre.h"
16 #include /**/ "tao/TAO_Export.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #include "tao/Basic_Types.h"
23 #include "ace/Service_Object.h"
25 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 namespace PortableInterceptor
32 typedef ORBInitializer
*ORBInitializer_ptr
;
34 typedef CORBA::ULong SlotId
;
40 * @class ORBInitializer_Registry_Adapter
42 * Class that offers an interface to the ORB to load and manipulate
43 * ORBInitializer_Registry
45 class TAO_Export ORBInitializer_Registry_Adapter
46 : public ACE_Service_Object
49 virtual ~ORBInitializer_Registry_Adapter ();
51 /// Register an ORBInitializer with the underlying ORBInitializer
53 virtual void register_orb_initializer (
54 PortableInterceptor::ORBInitializer_ptr init
) = 0;
57 * Begin initialization of all registered ORBInitializers before
58 * the ORB itself is initialized.
59 * @return Returns the number of initializers called by pre_init, exactly
60 * the same number must be called by post_init. During pre_init new
61 * initializers can be registered, these must not be called during
64 virtual size_t pre_init (
65 TAO_ORB_Core
*orb_core
,
68 PortableInterceptor::SlotId
&slotid
) = 0;
71 * Complete initialization of all registered ORBInitializers after
72 * the ORB has been initialized. Returns the number of slots
74 * @param pre_init_count The number of ORBInitializers we must
75 * call post_init on. There can be more in the registry when during
76 * pre_init new interceptors are regisered
77 * @param orb_core The ORB Core
78 * @param argc Number of arguments
79 * @param argv Argv array
80 * @param slotid The slot id
82 virtual void post_init (
83 size_t pre_init_count
,
84 TAO_ORB_Core
*orb_core
,
87 PortableInterceptor::SlotId slotid
) = 0;
91 TAO_END_VERSIONED_NAMESPACE_DECL
93 #include /**/ "ace/post.h"
95 #endif /* TAO_ORB_INITIALIZER_REGISTRY_ADAPTER_H */