Revert "Use a variable on the stack to not have a temporary in the call"
[ACE_TAO.git] / TAO / tao / PortableServer / ORT_Adapter.h
blob181c9ef510242ebb48c1c35189df625e66864156
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file ORT_Adapter.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
8 */
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)
18 # 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
27 namespace CORBA
29 class Object;
30 typedef Object *Object_ptr;
33 namespace PortableInterceptor
35 class ObjectReferenceTemplate;
36 class ObjectReferenceFactory;
39 namespace PortableServer
41 class POA;
42 typedef POA* POA_ptr;
45 namespace TAO
47 /**
48 * @class ORT_Adapter
50 * @brief ORT_Adapter
52 * Class that offers an interface to the POA to load and manipulate
53 * ORT library.
55 class TAO_PortableServer_Export ORT_Adapter
56 : public ACE_Service_Object
58 public:
59 /// Activate the ORT library
60 virtual int activate (const char *server_id,
61 const char *orb_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;
81 /**
82 * @name PortableInterceptor::ObjectReferenceFactory Methods
84 * Methods required by the
85 * PortableInterceptor::ObjectReferenceFactory ValueType.
87 //@{
88 virtual CORBA::Object_ptr make_object (
89 const char * repository_id,
90 const PortableInterceptor::ObjectId & id) = 0;
91 //@}
94 typedef
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 */