📄 idl3_client.cpp
字号:
return -1;
}
return 0;
}
int
IDL3_Client::valuetype_test (const char *repo_id,
const char *prefix
ACE_ENV_ARG_DECL)
{
CORBA::Contained_var result =
this->repo_->lookup_id (repo_id
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (CORBA::is_nil (result.in ()))
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_test: lookup by id failed\n",
prefix));
}
return -1;
}
CORBA::ExtValueDef_var evd =
CORBA::ExtValueDef::_narrow (result.in ()
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (CORBA::is_nil (evd.in ()))
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_test: narrow to ExtValueDef failed\n"));
}
return -1;
}
CORBA::ExtValueDef::ExtFullValueDescription_var desc =
evd->describe_ext_value (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
int status = this->valuetype_attribute_test (desc,
prefix
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->valuetype_inheritance_test (evd,
prefix
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->valuetype_operation_test (desc,
prefix
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->valuetype_member_test (desc,
prefix
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->valuetype_factory_test (desc,
prefix
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
return 0;
}
int
IDL3_Client::component_attribute_test (
CORBA::InterfaceAttrExtension::ExtFullInterfaceDescription_var &desc
ACE_ENV_ARG_DECL
)
{
if (desc->attributes.length () != ATTRS_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_attribute_test: wrong number of attrs\n"));
}
return -1;
}
const char *tmp = 0;
for (CORBA::ULong i = 0; i < ATTRS_LEN; ++i)
{
tmp = desc->attributes[i].name.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, ATTR_LOCAL_NAMES[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_attribute_test: "
"wrong local name for attribute #%d\n",
i + 1));
}
return -1;
}
CORBA::TCKind kind =
desc->attributes[i].type->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (kind != ATTR_TC_KINDS[i])
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_attribute_test: "
"wrong TCKind for attribute #%d\n",
i + 1));
}
return -1;
}
if (desc->attributes[i].get_exceptions.length () != GET_EXCEP_LEN[i])
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_attribute_test: "
"wrong number of get-exceptions"
" for attribute #%d\n",
i + 1));
}
return -1;
}
if (desc->attributes[i].put_exceptions.length () != PUT_EXCEP_LEN[i])
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_attribute_test: "
"wrong number of put-exceptions"
" for attribute #%d\n",
i + 1));
}
return -1;
}
}
return 0;
}
int
IDL3_Client::component_inheritance_test (
CORBA::ComponentIR::ComponentDef_var &comp_def
ACE_ENV_ARG_DECL
)
{
CORBA::InterfaceDefSeq_var supported =
comp_def->supported_interfaces (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
CORBA::ULong length = supported->length ();
if (length != COMP_SUPPORTED_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_inheritance_test: "
"wrong number of supported interfaces\n"));
}
return -1;
}
CORBA::String_var str;
for (CORBA::ULong i = 0; i < length; ++i)
{
str = supported[i].in ()->id (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (str.in () == 0
|| ACE_OS::strcmp (str.in (), COMP_SUPPORTED_IDS[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_inheritance_test: "
"bad id on supported interface #%d\n",
i + 1));
}
return -1;
}
}
CORBA::ComponentIR::ComponentDef_var comp_base =
comp_def->base_component (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (CORBA::is_nil (comp_base.in ()))
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_inheritance_test: "
"base component is null\n"));
}
return -1;
}
str = comp_base->id (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (str.in () == 0 || ACE_OS::strcmp (str.in (), COMP_BASE_ID) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_inheritance_test: "
"bad id on base component\n"));
}
return -1;
}
return 0;
}
int
IDL3_Client::component_port_test (
CORBA::ComponentIR::ComponentDef_var &comp_def
ACE_ENV_ARG_DECL
)
{
CORBA::Contained::Description_var desc =
comp_def->describe (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
CORBA::ComponentIR::ComponentDescription *cd = 0;
if ((desc->value >>= cd) == 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"component_port_test: "
"Any extraction of component description failed\n"));
}
return -1;
}
int status = this->provides_test (cd->provided_interfaces
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->uses_test (cd->used_interfaces
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->event_port_test (cd->emits_events,
EMITS_LEN,
"emits",
EMITS_NAMES,
EMITS_IDS
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->event_port_test (cd->publishes_events,
PUBLISHES_LEN,
"publishes",
PUBLISHES_NAMES,
PUBLISHES_IDS
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
status = this->event_port_test (cd->consumes_events,
CONSUMES_LEN,
"consumes",
CONSUMES_NAMES,
CONSUMES_IDS
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (status != 0)
{
return -1;
}
return 0;
}
int
IDL3_Client::provides_test (CORBA::ComponentIR::ProvidesDescriptionSeq &pds
ACE_ENV_ARG_DECL_NOT_USED)
{
if (pds.length () != PROVIDES_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"provides_test: "
"wrong number of provides interfaces\n"));
}
return -1;
}
const char *tmp = 0;
for (CORBA::ULong i = 0; i < PROVIDES_LEN; ++i)
{
tmp = pds[i].name.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, PROVIDES_NAMES[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"provides_test: "
"wrong local name for provides #%d\n",
i + 1));
}
return -1;
}
tmp = pds[i].interface_type.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, PROVIDES_TYPE_IDS[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"provides_test: "
"wrong base interface type id for provides #%d\n",
i + 1));
}
return -1;
}
}
return 0;
}
int
IDL3_Client::uses_test (CORBA::ComponentIR::UsesDescriptionSeq &uds
ACE_ENV_ARG_DECL_NOT_USED)
{
if (uds.length () != USES_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"uses_test: "
"wrong number of uses interfaces\n"));
}
return -1;
}
const char *tmp = 0;
CORBA::Boolean mult = 0;
for (CORBA::ULong i = 0; i < USES_LEN; ++i)
{
tmp = uds[i].name.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, USES_NAMES[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"uses_test: "
"wrong local name for uses #%d\n",
i + 1));
}
return -1;
}
tmp = uds[i].interface_type.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, USES_TYPE_IDS[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"uses_test: "
"wrong base interface type id for uses #%d\n",
i + 1));
}
return -1;
}
mult = uds[i].is_multiple;
if (mult != USES_MULTIPLE_FLAGS[i])
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"uses_test: "
"wrong is_multiple value for uses #%d\n",
i + 1));
}
return -1;
}
}
return 0;
}
int
IDL3_Client::event_port_test (CORBA::ComponentIR::EventPortDescriptionSeq &eds,
CORBA::ULong seq_length,
const char *port_type,
const char **names,
const char **ids
ACE_ENV_ARG_DECL_NOT_USED)
{
if (eds.length () != seq_length)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"event_port_test: "
"wrong number of event %s ports\n",
port_type));
}
return -1;
}
const char *tmp = 0;
for (CORBA::ULong i = 0; i < seq_length; ++i)
{
tmp = eds[i].name.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, names[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"event_port_test: "
"wrong local name for %s port #%d\n",
port_type,
i + 1));
}
return -1;
}
tmp = eds[i].event.in ();
if (tmp == 0 || ACE_OS::strcmp (tmp, ids[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"event_port_test: "
"wrong base event type id for %s port #%d\n",
port_type,
i + 1));
}
return -1;
}
}
return 0;
}
int
IDL3_Client::valuetype_inheritance_test (CORBA::ExtValueDef_var &vd,
const char *prefix
ACE_ENV_ARG_DECL)
{
CORBA::ValueDef_var bvd = vd->base_value (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (CORBA::is_nil (bvd.in ()))
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_inheritance_test: "
"base valuetype is null\n",
prefix));
}
return -1;
}
CORBA::String_var str = bvd->id (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (str.in () == 0 || ACE_OS::strcmp (str.in (), VT_BASE_ID) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_inheritance_test: "
"wrong repo id for base valuetype\n",
prefix));
}
return -1;
}
CORBA::InterfaceDefSeq_var supported =
vd->supported_interfaces (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
CORBA::ULong length = supported->length ();
if (length != VT_SUPPORTED_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_inheritance_test: "
"wrong number of supported interfaces\n",
prefix));
}
return -1;
}
for (CORBA::ULong i = 0; i < length; ++i)
{
str = supported[i].in ()->id (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (str.in () == 0
|| ACE_OS::strcmp (str.in (), VT_SUPPORTED_IDS[i]) != 0)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_inheritance_test: "
"bad id on supported interface #%d\n",
prefix,
i + 1));
}
return -1;
}
}
return 0;
}
int
IDL3_Client::valuetype_attribute_test (
CORBA::ExtValueDef::ExtFullValueDescription_var &desc,
const char *prefix
ACE_ENV_ARG_DECL
)
{
if (desc->attributes.length () != ATTRS_LEN)
{
if (this->debug_)
{
ACE_DEBUG ((LM_DEBUG,
"%stype_attribute_test: wrong number of attrs\n",
prefix));
}
return -1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -