本文整理汇总了C++中corba::TypeCode_ptr::member_count方法的典型用法代码示例。如果您正苦于以下问题:C++ TypeCode_ptr::member_count方法的具体用法?C++ TypeCode_ptr::member_count怎么用?C++ TypeCode_ptr::member_count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corba::TypeCode_ptr
的用法示例。
在下文中一共展示了TypeCode_ptr::member_count方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
CORBA::Boolean
TAO::TypeCode::Enum<char const *,
char const * const *,
TAO::Null_RefCount_Policy>::equal_i (
CORBA::TypeCode_ptr tc
) const
{
// This call shouldn't throw since CORBA::TypeCode::equal() verified
// that the TCKind is the same as our's prior to invoking this
// method, meaning that member_count() is supported.
CORBA::ULong const tc_nenumerators =
tc->member_count ();
if (tc_nenumerators != this->nenumerators_)
return false;
for (CORBA::ULong i = 0; i < this->nenumerators_; ++i)
{
char const * const & lhs_enumerator = this->enumerators_[i];
char const * const lhs_name =
Traits<char const *>::get_string (lhs_enumerator);
char const * const rhs_name = tc->member_name (i);
if (ACE_OS::strcmp (lhs_name, rhs_name) != 0)
return false;
}
return true;
}
示例2:
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;
}
示例3: catch
CORBA::Boolean TIDorb::core::typecode::StructTypeCode::equal(CORBA::TypeCode_ptr tc) const
{
if (!ComplexTypeCode::equal(tc))
return false;
if (!m_exhaustive_equal)
return true;
try {
CORBA::ULong length = m_members->length();
if (length != tc->member_count())
return false;
for (CORBA::ULong i = 0; i < length; i++) {
if (strcmp(member_name(i), tc->member_name(i)))
return false;
if (! member_type(i)->equal(tc->member_type(i)))
return false;
}
// allright
return true;
} catch (const CORBA::TypeCode::BadKind& bk) {
return false;
} catch (const CORBA::TypeCode::Bounds& bn) {
return false;
}
}
示例4:
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;
}
示例5:
CORBA::Boolean
TAO::TypeCode::Union<char const *,
CORBA::TypeCode_ptr const *,
TAO::TypeCode::Case<char const *,
CORBA::TypeCode_ptr const *> const * const *,
TAO::Null_RefCount_Policy>::equal_i (
CORBA::TypeCode_ptr tc
) const
{
// These calls shouldn't throw since CORBA::TypeCode::equal()
// verified that the TCKind is the same as our's prior to invoking
// this method, meaning that the CORBA::tk_union TypeCode methods
// are supported.
CORBA::ULong const tc_count = tc->member_count ();
CORBA::Long tc_def = tc->default_index ();
if (tc_count != this->ncases_ || tc_def != this->default_index_)
return false;
// Check the discriminator type.
CORBA::TypeCode_var tc_discriminator = tc->discriminator_type ();
CORBA::Boolean const equal_discriminators =
Traits<char const *>::get_typecode (this->discriminant_type_)->equal (
tc_discriminator.in ());
if (!equal_discriminators)
return false;
for (CORBA::ULong i = 0; i < this->ncases_; ++i)
{
if (this->default_index_ > -1
&& static_cast<CORBA::ULong> (this->default_index_) == i)
{
// Don't bother checking equality of default case label. It
// will always be the zero octet (the CDR encoded value is
// ignored).
continue;
}
case_type const & lhs_case = *this->cases_[i];
bool const equal_case = lhs_case.equal (i, tc);
if (!equal_case)
return false;
}
return true;
}
示例6: BAD_TYPECODE
DynStructImpl::DynStructImpl(DynamicAny::DynAnyFactory_ptr factory,
TIDorb::core::TIDORB* orb,
CORBA::TypeCode_ptr type,
CORBA::TypeCode_ptr real_type)
throw(CORBA::SystemException)
: DynComposite(factory, orb, type, real_type)
{
try
{
_component_count = real_type->member_count();
}
catch(CORBA::TypeCode::BadKind)
{
throw CORBA::BAD_TYPECODE();
}
_current = (_component_count == 0) ? -1 : 0;
this->TIDThr::RefCounter::_add_ref();
}
示例7:
CORBA::Boolean
TAO::TypeCode::Value<char const *,
CORBA::TypeCode_ptr const *,
TAO::TypeCode::Value_Field<char const *,
CORBA::TypeCode_ptr const *> const *,
TAO::Null_RefCount_Policy>::equal_i (
CORBA::TypeCode_ptr tc) const
{
// None of these calls should throw since CORBA::TypeCode::equal()
// verified that the TCKind is the same as our's prior to invoking
// this method.
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 equal_concrete_base_types =
this->equal (rhs_concrete_base_type.in ());
if (!equal_concrete_base_types)
return false;
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<char const *, CORBA::TypeCode_ptr const *> 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;
char const * const lhs_name =
Traits<char const *>::get_string (lhs_field.name);;
char const * const rhs_name = tc->member_name (i);
if (ACE_OS::strcmp (lhs_name, rhs_name) != 0)
return false;
CORBA::TypeCode_ptr const lhs_tc =
Traits<char const *>::get_typecode (lhs_field.type);
CORBA::TypeCode_var const rhs_tc =
tc->member_type (i);
CORBA::Boolean const equal_members =
lhs_tc->equal (rhs_tc.in ());
if (!equal_members)
return false;
}
return true;
}