当前位置: 首页>>代码示例>>C++>>正文


C++ TypeCode_ptr::equivalent方法代码示例

本文整理汇总了C++中corba::TypeCode_ptr::equivalent方法的典型用法代码示例。如果您正苦于以下问题:C++ TypeCode_ptr::equivalent方法的具体用法?C++ TypeCode_ptr::equivalent怎么用?C++ TypeCode_ptr::equivalent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在corba::TypeCode_ptr的用法示例。


在下文中一共展示了TypeCode_ptr::equivalent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

CORBA::Boolean
TAO::TypeCode::Struct<char const *,
                      CORBA::TypeCode_ptr const *,
                      TAO::TypeCode::Struct_Field<char const *,
                                                  CORBA::TypeCode_ptr const *> const *,
                      TAO::Null_RefCount_Policy>::equivalent_i (
  CORBA::TypeCode_ptr tc) const
{
  // Perform a structural comparison, excluding the name() and
  // member_name() operations.

  CORBA::ULong const tc_nfields =
    tc->member_count ();

  if (tc_nfields != this->nfields_)
    return false;

  for (CORBA::ULong i = 0; i < this->nfields_; ++i)
    {
      CORBA::TypeCode_ptr const lhs =
        Traits<char const *>::get_typecode (this->fields_[i].type);
      CORBA::TypeCode_var const rhs =
        tc->member_type (i);

      CORBA::Boolean const equiv_members =
        lhs->equivalent (rhs.in ());

      if (!equiv_members)
        return false;
    }

  return true;
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:33,代码来源:Struct_TypeCode_Static.cpp

示例2:

bool
TAO::TypeCode::Case<StringType, TypeCodeType>::equivalent (
    CORBA::ULong index,
    CORBA::TypeCode_ptr tc
) const
{
    // Member names are ignore when determining equivalence.

    // Check case TypeCodes.
    CORBA::TypeCode_ptr const lhs_tc = this->type ();
    CORBA::TypeCode_var const rhs_tc =
        tc->member_type (index
                        );

    CORBA::Boolean const equivalent_members =
        lhs_tc->equivalent (rhs_tc.in ()
                           );

    if (!equivalent_members)
        return 0;

    // Check case label.
    // The label must be equal when determining equivalence, too.
    return this->equal_label (index,
                              tc
                             );
}
开发者ID:asdlei00,项目名称:ACE,代码行数:27,代码来源:TypeCode_Case_Base_T.cpp

示例3:

CORBA::Boolean
TAO::TypeCode::Value<StringType,
                     TypeCodeType,
                     FieldArrayType,
                     RefCountPolicy>::equivalent_i (CORBA::TypeCode_ptr tc) const
{
  CORBA::ValueModifier const tc_type_modifier =
    tc->type_modifier ();

  if (tc_type_modifier != this->type_modifier_)
    return false;

  CORBA::TypeCode_var rhs_concrete_base_type =
    tc->concrete_base_type ();

  CORBA::Boolean const equivalent_concrete_base_types =
    this->equivalent (rhs_concrete_base_type.in ());

  if (!equivalent_concrete_base_types)
    return false;

  // Perform a structural comparison, excluding the name() and
  // member_name() operations.

  CORBA::ULong const tc_nfields =
    tc->member_count ();

  if (tc_nfields != this->nfields_)
    return false;

  for (CORBA::ULong i = 0; i < this->nfields_; ++i)
    {
      Value_Field<StringType, TypeCodeType> const & lhs_field =
        this->fields_[i];

      CORBA::Visibility const lhs_visibility =
        lhs_field.visibility;
      CORBA::Visibility const rhs_visibility =
        tc->member_visibility (i);

      if (lhs_visibility != rhs_visibility)
        return false;

      CORBA::TypeCode_ptr const lhs_tc =
        Traits<StringType>::get_typecode (lhs_field.type);
      CORBA::TypeCode_var const rhs_tc =
        tc->member_type (i);

      CORBA::Boolean const equiv_types =
        lhs_tc->equivalent (rhs_tc.in ()
                           );

      if (!equiv_types)
        return false;
    }

  return true;
}
开发者ID:CCJY,项目名称:ATCD,代码行数:58,代码来源:Value_TypeCode.cpp

示例4: switch

void
TAO_DynAny_i::check_typecode (CORBA::TypeCode_ptr tc)
{
  // Check to see if it's a simple type.
  CORBA::TCKind tk = TAO_DynAnyFactory::unalias (tc);

  switch (tk)
  {
    case CORBA::tk_null:
    case CORBA::tk_void:
    case CORBA::tk_short:
    case CORBA::tk_long:
    case CORBA::tk_ushort:
    case CORBA::tk_ulong:
    case CORBA::tk_float:
    case CORBA::tk_double:
    case CORBA::tk_longlong:
    case CORBA::tk_ulonglong:
    case CORBA::tk_boolean:
    case CORBA::tk_char:
    case CORBA::tk_wchar:
    case CORBA::tk_octet:
    case CORBA::tk_any:
    case CORBA::tk_TypeCode:
    case CORBA::tk_objref:
    case CORBA::tk_string:
    case CORBA::tk_wstring:
    case CORBA::tk_longdouble:
      break;
    case CORBA::tk_sequence:
      if (tc->equivalent (CORBA::_tc_BooleanSeq)
        || tc->equivalent (CORBA::_tc_OctetSeq)
        || tc->equivalent (CORBA::_tc_CharSeq)
        || tc->equivalent (CORBA::_tc_WCharSeq)
        || tc->equivalent (CORBA::_tc_ShortSeq)
        || tc->equivalent (CORBA::_tc_UShortSeq)
        || tc->equivalent (CORBA::_tc_LongSeq)
        || tc->equivalent (CORBA::_tc_ULongSeq)
        || tc->equivalent (CORBA::_tc_LongLongSeq)
        || tc->equivalent (CORBA::_tc_ULongLongSeq)
        || tc->equivalent (CORBA::_tc_FloatSeq)
        || tc->equivalent (CORBA::_tc_DoubleSeq)
        || tc->equivalent (CORBA::_tc_LongDoubleSeq))
        {
          // Otherwise fall through.
          break;
        }
      // fallthrough
    default:
      throw DynamicAny::DynAnyFactory::InconsistentTypeCode ();
  }
}
开发者ID:milan-mpathix,项目名称:ATCD,代码行数:52,代码来源:DynAny_i.cpp


注:本文中的corba::TypeCode_ptr::equivalent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。