3 //=============================================================================
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
9 //=============================================================================
10 #ifndef TAO_ORT_ADAPTER_H
11 #define TAO_ORT_ADAPTER_H
13 #include /**/ "ace/pre.h"
15 #include "tao/PortableServer/portableserver_export.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/PI_ForwardC.h"
22 #include "ace/Service_Object.h"
23 #include "ace/Array_Base.h"
25 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
30 typedef Object
*Object_ptr
;
33 namespace PortableInterceptor
35 class ObjectReferenceTemplate
;
36 class ObjectReferenceFactory
;
39 namespace PortableServer
52 * Class that offers an interface to the POA to load and manipulate
55 class TAO_PortableServer_Export ORT_Adapter
56 : public ACE_Service_Object
59 /// Activate the ORT library
60 virtual int activate (const char *server_id
,
62 PortableInterceptor::AdapterName
*,
63 PortableServer::POA_ptr poa
) = 0;
65 /// Set a different ort_factory to be used.
66 virtual int set_obj_ref_factory (
67 PortableInterceptor::ObjectReferenceFactory
*current_factory
) = 0;
69 /// Accessor methods to ObjectReferenceTemplate template
70 virtual PortableInterceptor::ObjectReferenceTemplate
*
71 get_adapter_template () = 0;
73 /// Accessor methods to PortableInterceptor::ObjectReferenceFactory
74 virtual PortableInterceptor::ObjectReferenceFactory
*
75 get_obj_ref_factory () = 0;
77 /// Release any references on @c ObjectReferenceTemplate @a t.
78 virtual void release (
79 PortableInterceptor::ObjectReferenceTemplate
* t
) = 0;
82 * @name PortableInterceptor::ObjectReferenceFactory Methods
84 * Methods required by the
85 * PortableInterceptor::ObjectReferenceFactory ValueType.
88 virtual CORBA::Object_ptr
make_object (
89 const char * repository_id
,
90 const PortableInterceptor::ObjectId
& id
) = 0;
95 ACE_Array_Base
<PortableInterceptor::ObjectReferenceTemplate
*> ORT_Array
;
98 TAO_END_VERSIONED_NAMESPACE_DECL
100 #include /**/ "ace/post.h"
101 #endif /* TAO_ORT_ADAPTER_H */