Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / ORBInitializer_Registry_Adapter.h
blob7c973c2b44fb7b34871dca318ebb339e24f2e72d
1 // -*- C++ -*-
3 // ===================================================================
4 /**
5 * @file ORBInitializer_Registry_Adapter.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
8 */
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)
19 # 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
27 class TAO_ORB_Core;
29 namespace PortableInterceptor
31 class ORBInitializer;
32 typedef ORBInitializer *ORBInitializer_ptr;
34 typedef CORBA::ULong SlotId;
37 namespace TAO
39 /**
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
48 public:
49 virtual ~ORBInitializer_Registry_Adapter ();
51 /// Register an ORBInitializer with the underlying ORBInitializer
52 /// array.
53 virtual void register_orb_initializer (
54 PortableInterceptor::ORBInitializer_ptr init) = 0;
56 /**
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
62 * post_init
64 virtual size_t pre_init (
65 TAO_ORB_Core *orb_core,
66 int argc,
67 char *argv[],
68 PortableInterceptor::SlotId &slotid) = 0;
70 /**
71 * Complete initialization of all registered ORBInitializers after
72 * the ORB has been initialized. Returns the number of slots
73 * allocated.
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,
85 int argc,
86 char *argv[],
87 PortableInterceptor::SlotId slotid) = 0;
91 TAO_END_VERSIONED_NAMESPACE_DECL
93 #include /**/ "ace/post.h"
95 #endif /* TAO_ORB_INITIALIZER_REGISTRY_ADAPTER_H */