00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file DII_Arguments_Converter_Impl.h 00006 * 00007 * $Id: DII_Arguments_Converter_Impl.h 80380 2008-01-07 13:11:49Z mcorino $ 00008 * 00009 * @author Yan Dai <dai_y@ociweb.com> 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_DII_ARGUMENTS_CONVERTER_IMPL_H 00015 #define TAO_DII_ARGUMENTS_CONVERTER_IMPL_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "tao/DynamicInterface/dynamicinterface_export.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 #include "tao/PortableServer/Collocated_Arguments_Converter.h" 00026 00027 #include "ace/Service_Config.h" 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 00032 /** 00033 * @class TAO_DII_Arguments_Converter_Impl 00034 * 00035 * @brief TAO_DII_Arguments_Converter_Impl. 00036 * 00037 * This class provides the implementation to expand the DII arguments in NVList 00038 * to the list of arguments. 00039 */ 00040 class TAO_DynamicInterface_Export TAO_DII_Arguments_Converter_Impl 00041 : public TAO::Collocated_Arguments_Converter 00042 { 00043 public: 00044 00045 virtual void convert_request (TAO_ServerRequest & server_request, 00046 TAO::Argument * const args[], 00047 size_t nargs); 00048 00049 virtual void dsi_convert_request (TAO_ServerRequest & server_request, 00050 TAO_OutputCDR & output); 00051 00052 virtual void convert_reply (TAO_ServerRequest & server_request, 00053 TAO::Argument * const args[], 00054 size_t nargs); 00055 00056 virtual void dsi_convert_reply (TAO_ServerRequest & server_request, 00057 TAO_InputCDR & input); 00058 00059 virtual void handle_corba_exception (TAO_ServerRequest & server_request, 00060 CORBA::Exception *exception); 00061 00062 // Used to force the initialization of the ORB code. 00063 static int Initializer (void); 00064 }; 00065 00066 static int 00067 TAO_Requires_DII_Arguments_Converter_Impl_Initializer = 00068 TAO_DII_Arguments_Converter_Impl::Initializer (); 00069 00070 TAO_END_VERSIONED_NAMESPACE_DECL 00071 00072 ACE_STATIC_SVC_DECLARE (TAO_DII_Arguments_Converter_Impl) 00073 ACE_FACTORY_DECLARE (TAO_DynamicInterface, TAO_DII_Arguments_Converter_Impl) 00074 00075 00076 #include /**/ "ace/post.h" 00077 00078 #endif /* TAO_DII_ARGUMENTS_CONVERTER_IMPL_H */ 00079 00080