TAO_Sequence_Extracter_Base Class Reference

#include <Interpreter_Utils.h>

List of all members.

Static Public Member Functions

CORBA::TCKind sequence_type (CORBA::TypeCode *code) throw (CORBA::SystemException)


Member Function Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::TCKind TAO_Sequence_Extracter_Base::sequence_type CORBA::TypeCode *  code  )  throw (CORBA::SystemException) [static]
 

Definition at line 11 of file Interpreter_Utils.cpp.

References ACE_CHECK_RETURN, and ACE_ENV_SINGLE_ARG_PARAMETER.

Referenced by TAO_Constraint_Evaluator::sequence_does_contain(), and TAO_Constraint_Validator::visit_in().

00014 {
00015   // @@ Seth, why do you use a comma to separate the two statements?
00016   CORBA::TCKind return_value = CORBA::tk_void,
00017   type_kind = type_code->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
00018   ACE_CHECK_RETURN (return_value);
00019 
00020   if (type_kind == CORBA::tk_alias
00021       || type_kind == CORBA::tk_sequence)
00022     {
00023       CORBA::TypeCode_var base = CORBA::TypeCode::_duplicate (type_code);
00024 
00025       for (;;)
00026         {
00027           CORBA::TCKind base_kind = base->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
00028           ACE_CHECK_RETURN (return_value);
00029 
00030           if (base_kind == CORBA::tk_alias)
00031             {
00032               base = base->content_type (ACE_ENV_SINGLE_ARG_PARAMETER);
00033               ACE_CHECK_RETURN (return_value);
00034             }
00035           else
00036             break;
00037         }
00038 
00039       CORBA::TCKind base_kind = base->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
00040       ACE_CHECK_RETURN (return_value);
00041 
00042       if (base_kind == CORBA::tk_sequence)
00043         {
00044           base = base->content_type (ACE_ENV_SINGLE_ARG_PARAMETER);
00045           ACE_CHECK_RETURN (return_value);
00046 
00047           base_kind = base->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
00048           ACE_CHECK_RETURN (return_value);
00049           return_value = base_kind;
00050         }
00051     }
00052 
00053   return return_value;
00054 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 14:01:13 2006 for TAO_CosTrader by doxygen 1.3.6