00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Dynamic_Adapter.h 00006 * 00007 * Dynamic_Adapter.h,v 1.17 2005/11/02 07:13:02 ossama Exp 00008 * 00009 * @author Jeff Parsons <parsons@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_DYNAMIC_ADAPTER_H 00014 #define TAO_DYNAMIC_ADAPTER_H 00015 00016 #include /**/ "ace/pre.h" 00017 #include "ace/Service_Object.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 # pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 #include "ace/CORBA_macros.h" 00024 00025 #include "tao/TAO_Export.h" 00026 #include "tao/Basic_Types.h" 00027 #include "ace/CORBA_macros.h" 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 namespace CORBA 00032 { 00033 class Object; 00034 typedef Object *Object_ptr; 00035 00036 class ORB; 00037 typedef ORB *ORB_ptr; 00038 00039 class NVList; 00040 typedef NVList *NVList_ptr; 00041 00042 class NamedValue; 00043 typedef NamedValue *NamedValue_ptr; 00044 00045 class ExceptionList; 00046 typedef ExceptionList *ExceptionList_ptr; 00047 00048 class Request; 00049 typedef Request *Request_ptr; 00050 00051 class Context; 00052 typedef Context *Context_ptr; 00053 00054 class ServerRequest; 00055 typedef ServerRequest *ServerRequest_ptr; 00056 00057 typedef ULong Flags; 00058 00059 class Environment; 00060 } 00061 00062 /** 00063 * @class TAO_Dynamic_Adapter 00064 * 00065 * @brief TAO_Dynamic_Adapter. 00066 * 00067 * Class that adapts various functions in the CORBA namespace 00068 * related to DII/DSI, which is no longer found in the TAO library. 00069 * This is a base for the actual implementation in the DynamicInterface 00070 * library. 00071 */ 00072 class TAO_Export TAO_Dynamic_Adapter : public ACE_Service_Object 00073 { 00074 public: 00075 virtual ~TAO_Dynamic_Adapter (void); 00076 00077 // CORBA::Object::_create_request and CORBA::Object::_request. 00078 00079 virtual void create_request (CORBA::Object_ptr obj, 00080 CORBA::ORB_ptr orb, 00081 const char *operation, 00082 CORBA::NVList_ptr arg_list, 00083 CORBA::NamedValue_ptr result, 00084 CORBA::ExceptionList_ptr exceptions, 00085 CORBA::Request_ptr &request, 00086 CORBA::Flags req_flags 00087 ACE_ENV_ARG_DECL) = 0; 00088 00089 virtual CORBA::Request_ptr request (CORBA::Object_ptr obj, 00090 CORBA::ORB_ptr orb, 00091 const char *op 00092 ACE_ENV_ARG_DECL) = 0; 00093 00094 // CORBA::is_nil and CORBA::release for Context, Request, and ServerRequest. 00095 00096 virtual CORBA::Boolean context_is_nil (CORBA::Context_ptr ctx) = 0; 00097 00098 virtual CORBA::Boolean request_is_nil (CORBA::Request_ptr req) = 0; 00099 00100 virtual CORBA::Boolean server_request_is_nil (CORBA::ServerRequest_ptr req) = 0; 00101 00102 virtual void context_release (CORBA::Context_ptr ctx) = 0; 00103 00104 virtual void request_release (CORBA::Request_ptr req) = 0; 00105 00106 virtual void server_request_release (CORBA::ServerRequest_ptr req) = 0; 00107 00108 // CORBA::ORB::create_exception_list. 00109 virtual void create_exception_list (CORBA::ExceptionList_ptr & 00110 ACE_ENV_ARG_DECL) = 0; 00111 }; 00112 00113 TAO_END_VERSIONED_NAMESPACE_DECL 00114 00115 #include /**/ "ace/post.h" 00116 #endif /* TAO_DYNAMIC_ADAPTER_H */