DII_Invocation.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    DII_Invocation.h
00006  *
00007  *  DII_Invocation.h,v 1.20 2006/03/10 07:19:08 jtc Exp
00008  *
00009  *  @brief The DII invocation classes.
00010  *
00011  *  @author Carlos O'Ryan <coryan@cs.wustl.edu>
00012  *  @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
00013  *  @author Jeff Parsons <parsons@cs.wustl.edu>
00014  */
00015 //=============================================================================
00016 
00017 #ifndef TAO_DII_INVOCATION_H
00018 #define TAO_DII_INVOCATION_H
00019 
00020 #include /**/ "ace/pre.h"
00021 
00022 #include "tao/DynamicInterface/dynamicinterface_export.h"
00023 
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 #  pragma once
00026 #endif /* ACE_LACKS_PRAGMA_ONCE */
00027 
00028 #include "tao/Synch_Invocation.h"
00029 #include "tao/Messaging/Asynch_Invocation.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 class TAO_DII_Deferred_Reply_Dispatcher;
00034 
00035 namespace Dynamic
00036 {
00037   class ParameterList;
00038 }
00039 
00040 namespace TAO
00041 {
00042   /**
00043    */
00044   class TAO_DynamicInterface_Export DII_Invocation:
00045     public Synch_Twoway_Invocation
00046   {
00047   public:
00048     friend class DII_Invocation_Adapter;
00049 
00050     DII_Invocation (CORBA::Object_ptr otarget,
00051                     Profile_Transport_Resolver &resolver,
00052                     TAO_Operation_Details &detail,
00053                     CORBA::ExceptionList *excp,
00054                     CORBA::Request_ptr req,
00055                     bool response_expected = true);
00056 
00057 #if TAO_HAS_INTERCEPTORS ==1
00058     virtual Dynamic::ParameterList *arguments (ACE_ENV_SINGLE_ARG_DECL)
00059       ACE_THROW_SPEC ((CORBA::SystemException));
00060 #endif /*TAO_HAS_INTERCEPTORS == 1*/
00061 
00062     Invocation_Status remote_invocation (
00063         ACE_Time_Value *max_wait_time
00064         ACE_ENV_ARG_DECL
00065       )
00066       ACE_THROW_SPEC ((CORBA::Exception));
00067 
00068     virtual Invocation_Status handle_user_exception (
00069         TAO_InputCDR &cdr
00070         ACE_ENV_ARG_DECL
00071       )
00072       ACE_THROW_SPEC ((CORBA::Exception));
00073   private:
00074 
00075     CORBA::ExceptionList *excp_list_;
00076 
00077     /// Back pointer to the DII request that created us.
00078     CORBA::Request_ptr host_;
00079 
00080   };
00081 
00082 
00083   /*
00084    *
00085    */
00086   class TAO_DynamicInterface_Export DII_Deferred_Invocation
00087     : public Asynch_Remote_Invocation
00088   {
00089   public:
00090     friend class DII_Deferred_Invocation_Adapter;
00091 
00092     DII_Deferred_Invocation (CORBA::Object_ptr otarget,
00093                              Profile_Transport_Resolver &resolver,
00094                              TAO_Operation_Details &detail,
00095                              TAO_DII_Deferred_Reply_Dispatcher *rd,
00096                              CORBA::Request_ptr req,
00097                              bool response_expected = true);
00098 
00099 #if TAO_HAS_INTERCEPTORS ==1
00100     virtual Dynamic::ParameterList *arguments (ACE_ENV_SINGLE_ARG_DECL)
00101       ACE_THROW_SPEC ((CORBA::SystemException));
00102 #endif /*TAO_HAS_INTERCEPTORS == 1*/
00103 
00104     Invocation_Status remote_invocation (
00105         ACE_Time_Value *max_wait_time
00106         ACE_ENV_ARG_DECL
00107       )
00108       ACE_THROW_SPEC ((CORBA::Exception));
00109 
00110   private:
00111 
00112     /// Back pointer to the DII request that created us.
00113     CORBA::Request_ptr host_;
00114 
00115   };
00116 }
00117 
00118 TAO_END_VERSIONED_NAMESPACE_DECL
00119 
00120 #include /**/ "ace/post.h"
00121 
00122 #endif /* TAO_DII_INVOCATION_H */

Generated on Thu Nov 9 13:04:21 2006 for TAO_DynamicInterface by doxygen 1.3.6