Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

get_arg.h File Reference

#include "tao/operation_details.h"

Include dependency graph for get_arg.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Namespaces

namespace  TAO
namespace  TAO::Portable_Server

Functions

template<typename T, typename RET_ARG_TYPE>
RET_ARG_TYPE get_ret_arg (TAO_Operation_Details const *details, TAO::Argument *const *skel_args)
 Get return value/argument.
template<typename T, typename IN_ARG_TYPE>
IN_ARG_TYPE get_in_arg (TAO_Operation_Details const *details, TAO::Argument *const *skel_args, size_t i)
 Get "in" argument.
template<typename T, typename INOUT_ARG_TYPE>
INOUT_ARG_TYPE get_inout_arg (TAO_Operation_Details const *details, TAO::Argument *const *skel_args, size_t i)
 Get "inout" argument.
template<typename T, typename OUT_ARG_TYPE>
OUT_ARG_TYPE get_out_arg (TAO_Operation_Details const *details, TAO::Argument *const *skel_args, size_t i)
 Get "out" argument.

Detailed Description

Id
get_arg.h,v 1.3 2005/11/04 09:26:56 ossama Exp

Thru-POA/skeleton argument selection function templates.

These function templates are used to choose between arguments supplied in thru-POA collocated invocations and arguments in uncollocated invocations.
Note:
A function template approach is used to avoid complicated argument conversions between stub supplied arguments and skeleton supplied ones. For example, it is possible to make argument selection more transparent by taking advantage of run-time polymorphism. However, that approach would incur additional footprint overhead on the client side due to the introduction of virtual tables, etc.
Author:
Ossama Othman

Function Documentation

template<typename T, typename IN_ARG_TYPE>
IN_ARG_TYPE get_in_arg TAO_Operation_Details const *  details,
TAO::Argument *const *  skel_args,
size_t  i
 

Get "in" argument.

See also:
get_ret_arg note to understand why we currently use a second template parameter.

Todo:
Drop second template parameter, and replace " @c IN_ARG_TYPE " return type with " @c typename TAO::SArg_Traits<T>::in_arg_type ".

template<typename T, typename INOUT_ARG_TYPE>
INOUT_ARG_TYPE get_inout_arg TAO_Operation_Details const *  details,
TAO::Argument *const *  skel_args,
size_t  i
 

Get "inout" argument.

See also:
get_ret_arg note to understand why we currently use a second template parameter.

Todo:
Drop second template parameter, and replace " @c INOUT_ARG_TYPE " return type with " @c typename TAO::SArg_Traits<T>::inout_arg_type ".

template<typename T, typename OUT_ARG_TYPE>
OUT_ARG_TYPE get_out_arg TAO_Operation_Details const *  details,
TAO::Argument *const *  skel_args,
size_t  i
 

Get "out" argument.

See also:
get_ret_arg note to understand why we currently use a second template parameter.

Todo:
Drop second template parameter, and replace " @c OUT_ARG_TYPE " return type with " @c typename TAO::SArg_Traits<T>::out_arg_type ".

template<typename T, typename RET_ARG_TYPE>
RET_ARG_TYPE get_ret_arg TAO_Operation_Details const *  details,
TAO::Argument *const *  skel_args
 

Get return value/argument.

Note:
It is possible to determine the return argument type using typedef traits found in the TAO::SArg_Traits<> template. However, MSVC++ 6 does not support them properly. Until we drop MSVC++ 6 support, we'll have to pass the return argument type in an additional template parameter.

Todo:
Drop second template parameter, and replace " @c RET_ARG_TYPE " return type with " @c typename TAO::SArg_Traits<T>::ret_arg_type ".


Generated on Tue Dec 20 23:33:27 2005 for TAO_PortableServer by  doxygen 1.3.9.1