#include <Interpreter_Utils.h>
Static Public Member Functions | |
CORBA::TCKind | sequence_type (CORBA::TypeCode *code) throw (CORBA::SystemException) |
|
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 } |