00001 // -*- C++ -*- 00002 00003 // =================================================================== 00004 /** 00005 * @file RequestInfo_Util.h 00006 * 00007 * RequestInfo_Util.h,v 1.4 2006/03/10 07:19:12 jtc Exp 00008 * 00009 * @author Ossama Othman <ossama@uci.edu> 00010 */ 00011 // =================================================================== 00012 00013 #ifndef TAO_REQUEST_INFO_UTIL_H 00014 #define TAO_REQUEST_INFO_UTIL_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/Basic_Types.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "tao/orbconf.h" 00025 00026 #if TAO_HAS_INTERCEPTORS == 1 00027 00028 #include "ace/CORBA_macros.h" 00029 #include "tao/PI/pi_export.h" 00030 00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00032 00033 namespace CORBA 00034 { 00035 class StringSeq; 00036 class Any; 00037 class Environment; 00038 } 00039 00040 namespace Dynamic 00041 { 00042 class ParameterList; 00043 class ExceptionList; 00044 typedef CORBA::StringSeq ContextList; 00045 typedef CORBA::StringSeq RequestContext; 00046 } 00047 00048 /** 00049 * @class TAO_RequestInfo_Util 00050 * 00051 * @brief Helper class that provides methods useful for both 00052 * PortableInterceptor::ClientRequestInfo and 00053 * PortableInterceptor::ServerRequestInfo objects. 00054 */ 00055 class TAO_PI_Export TAO_RequestInfo_Util 00056 { 00057 public: 00058 00059 /** 00060 * @name Factory Methods 00061 * 00062 * These are methods called by TAO_{Client,Server}RequestInfo and 00063 * their subclasses. Rather than having the same factory code in 00064 * each subclass, we factor the common code in to this utility 00065 * class. 00066 */ 00067 //@{ 00068 static Dynamic::ParameterList * make_parameter_list ( 00069 ACE_ENV_SINGLE_ARG_DECL); 00070 00071 static Dynamic::ExceptionList * make_exception_list ( 00072 ACE_ENV_SINGLE_ARG_DECL); 00073 00074 static Dynamic::ContextList * make_context_list ( 00075 ACE_ENV_SINGLE_ARG_DECL); 00076 00077 static Dynamic::RequestContext * make_request_context ( 00078 ACE_ENV_SINGLE_ARG_DECL); 00079 00080 static CORBA::Any * make_any (CORBA::Boolean tk_void_any 00081 ACE_ENV_ARG_DECL); 00082 //@} 00083 }; 00084 00085 TAO_END_VERSIONED_NAMESPACE_DECL 00086 00087 #endif 00088 00089 #include /**/ "ace/post.h" 00090 00091 #endif /* TAO_REQUEST_INFO_UTIL_H */