本文整理汇总了C++中Adapter::_find_meta_class方法的典型用法代码示例。如果您正苦于以下问题:C++ Adapter::_find_meta_class方法的具体用法?C++ Adapter::_find_meta_class怎么用?C++ Adapter::_find_meta_class使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Adapter
的用法示例。
在下文中一共展示了Adapter::_find_meta_class方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: associators
CMPIStatus Adapter::associators(
CMPIAssociationMI* mi,
const CMPIContext* context,
const CMPIResult* result,
const CMPIObjectPath* cmpi_op,
const char* assoc_class_,
const char* result_class_,
const char* role_,
const char* result_role_,
const char** properties)
{
TRACE;
const char* assoc_class = assoc_class_ ? assoc_class_ : "";
const char* result_class = result_class_ ? result_class_ : "";
const char* role = role_ ? role_ : "";
const char* result_role = result_role_ ? result_role_ : "";
_context_tls.set((void*)context);
Adapter* adapter = (Adapter*)mi->hdl;
Auto_RMutex auto_lock(adapter->_lock);
CIMPLE_ASSERT(strcasecmp(assoc_class, adapter->_mc->name) == 0);
// Lookup meta class for cmpi_op (not the same as the provider class).
const Meta_Class* mc = adapter->_find_meta_class(class_name(cmpi_op));
if (!mc)
CMReturn(CMPI_RC_ERR_INVALID_CLASS);
// Convert to CIMPLE reference:
Instance* cimple_ref = 0;
CMPIrc rc = make_cimple_reference(mc, cmpi_op, cimple_ref);
Destroyer<Instance> cimple_ref_d(cimple_ref);
if (rc != CMPI_RC_OK)
CMReturn(rc);
// Invoke the provider:
associators::Data data = { adapter->broker,
context, result, name_space(cmpi_op), properties, CMPI_RC_OK };
Enum_Associator_Names_Status status = adapter->enum_associator_names(
cimple_ref,
result_class,
role,
result_role,
associators::_proc,
&data);
CMReturn(CMPI_RC_OK);
}
示例2: referenceNames
CMPIStatus Adapter::referenceNames(
CMPIAssociationMI* mi,
const CMPIContext* context,
const CMPIResult* result,
const CMPIObjectPath* cmpi_op,
const char* result_class_,
const char* role_)
{
TRACE;
_context_tls.set((void*)context);
Adapter* adapter = (Adapter*)mi->hdl;
Auto_RMutex auto_lock(adapter->_lock);
const char* result_class = result_class_ ? result_class_ : "";
const char* role = role_ ? role_ : "";
// Lookup meta class for cmpi_op (not the same as the provider class).
const Meta_Class* mc = adapter->_find_meta_class(class_name(cmpi_op));
if (!mc)
CMReturn(CMPI_RC_ERR_INVALID_CLASS);
CIMPLE_ASSERT(strcasecmp(result_class, adapter->_mc->name) == 0);
// Convert to CIMPLE reference:
Instance* cimple_ref = 0;
CMPIrc rc = make_cimple_reference(mc, cmpi_op, cimple_ref);
Destroyer<Instance> cimple_ref_d(cimple_ref);
if (rc != CMPI_RC_OK)
CMReturn(rc);
// Create a model.
const Meta_Class* model_meta_class = 0;
adapter->get_meta_class(model_meta_class);
Instance* cimple_model = cimple::create(model_meta_class);
nullify_non_keys(cimple_model);
// Invoke the provider:
reference_names::Data data = {
adapter->broker, context, result, name_space(cmpi_op), CMPI_RC_OK };
Enum_References_Status status = adapter->enum_references(
cimple_ref, cimple_model, role, reference_names::_proc, &data);
destroy(cimple_model);
switch (status)
{
case ENUM_REFERENCES_OK:
CMReturn(CMPI_RC_OK);
case ENUM_REFERENCES_FAILED:
case ENUM_REFERENCES_UNSUPPORTED:
CMReturn(CMPI_RC_ERR_FAILED);
}
// Unreachable!
CMReturn(CMPI_RC_OK);
}