ORT_Adapter.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    ORT_Adapter.h
00006  *
00007  *  ORT_Adapter.h,v 1.8 2006/03/10 07:19:13 jtc Exp
00008  *
00009  *  @author  Johnny Willemsen  <jwillemsen@remedy.nl>
00010  */
00011 //=============================================================================
00012 #ifndef TAO_ORT_ADAPTER_H
00013 #define TAO_ORT_ADAPTER_H
00014 
00015 #include /**/ "ace/pre.h"
00016 
00017 #include "tao/PortableServer/portableserver_export.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif /* ACE_LACKS_PRAGMA_ONCE */
00022 
00023 #include "tao/SystemException.h"
00024 #include "tao/PI_ForwardC.h"
00025 #include "ace/Service_Object.h"
00026 #include "ace/Array_Base.h"
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 namespace CORBA
00031 {
00032   class Object;
00033   typedef Object *Object_ptr;
00034 }
00035 
00036 namespace PortableInterceptor
00037 {
00038   class ObjectReferenceTemplate;
00039   class ObjectReferenceFactory;
00040 }
00041 
00042 namespace PortableServer
00043 {
00044   class POA;
00045   typedef POA* POA_ptr;
00046 }
00047 
00048 namespace TAO
00049 {
00050   /**
00051    * @class ORT_Adapter
00052    *
00053    * @brief ORT_Adapter
00054    *
00055    * Class that offers an interface to the POA to load and manipulate
00056    * ORT library.
00057    */
00058   class TAO_PortableServer_Export ORT_Adapter
00059     : public ACE_Service_Object
00060   {
00061   public:
00062     /// Activate the ORT library
00063     virtual int activate (const char *server_id,
00064                           const char *orb_id,
00065                           PortableInterceptor::AdapterName *,
00066                           PortableServer::POA_ptr poa
00067                           ACE_ENV_ARG_DECL) = 0;
00068 
00069     /// Set a different ort_factory to be used.
00070     virtual int set_obj_ref_factory (
00071       PortableInterceptor::ObjectReferenceFactory *current_factory
00072       ACE_ENV_ARG_DECL_WITH_DEFAULTS) = 0;
00073 
00074     /// Accessor methods to ObjectReferenceTemplate template
00075     virtual PortableInterceptor::ObjectReferenceTemplate *
00076       get_adapter_template (void) = 0;
00077 
00078     /// Accessor methods to PortableInterceptor::ObjectReferenceFactory
00079     virtual PortableInterceptor::ObjectReferenceFactory *
00080       get_obj_ref_factory (void) = 0;
00081 
00082     /// Release any references on @c ObjectReferenceTemplate @a t.
00083     virtual void release (
00084       PortableInterceptor::ObjectReferenceTemplate * t) = 0;
00085 
00086     /**
00087      * @name PortableInterceptor::ObjectReferenceFactory Methods
00088      *
00089      * Methods required by the
00090      * PortableInterceptor::ObjectReferenceFactory ValueType.
00091      *
00092      * @todo
00093      * @@ Johnny, we won't be needing the exception specification
00094      * below for long.  Once bug 1852 is fixed, we can the
00095      * exception specification and the "tao/SystemException.h"
00096      * include above.
00097      */
00098     //@{
00099     virtual CORBA::Object_ptr make_object (
00100       const char * repository_id,
00101       const PortableInterceptor::ObjectId & id
00102       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00103     ACE_THROW_SPEC ((
00104       CORBA::SystemException
00105     )) = 0;
00106     //@}
00107   };
00108 
00109  typedef
00110   ACE_Array_Base<PortableInterceptor::ObjectReferenceTemplate*> ORT_Array;
00111 
00112 }
00113 
00114 TAO_END_VERSIONED_NAMESPACE_DECL
00115 
00116 #include /**/ "ace/post.h"
00117 #endif /* TAO_ORT_ADAPTER_H */

Generated on Thu Nov 9 12:40:39 2006 for TAO_PortableServer by doxygen 1.3.6