本文整理汇总了C++中CIMValue::isArray方法的典型用法代码示例。如果您正苦于以下问题:C++ CIMValue::isArray方法的具体用法?C++ CIMValue::isArray怎么用?C++ CIMValue::isArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIMValue
的用法示例。
在下文中一共展示了CIMValue::isArray方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mbGetProperty
static CMPIData mbGetProperty(
const CMPIBroker *mb,
const CMPIContext *ctx,
const CMPIObjectPath *cop,
const char *name,
CMPIStatus *rc)
{
PEG_METHOD_ENTER(
TRC_CMPIPROVIDERINTERFACE,
"CMPI_Broker:mbGetProperty()");
mb = CM_BROKER;
CMPIData data = {0,CMPI_nullValue,{0}};
SCMOInstance* scmoObjPath = SCMO_ObjectPath(cop);
CIMObjectPath qop;
scmoObjPath->getCIMObjectPath(qop);
try
{
CIMValue v = CM_CIMOM(mb)->getProperty(
*CM_Context(ctx),
SCMO_ObjectPath(cop)->getNameSpace(),
qop,
String(name));
CIMType vType = v.getType();
CMPIType t = type2CMPIType(vType,v.isArray());
value2CMPIData(v,t,&data);
CMSetStatus(rc,CMPI_RC_OK);
}
HandlerCatchSetStatus(rc, data);
PEG_METHOD_EXIT();
return data; // "data" will be valid data or nullValue (in error case)
}
示例2: _checkStringValue
void _checkStringValue (CIMValue & theValue,
const String & value,
Boolean null = false)
{
PEGASUS_TEST_ASSERT (theValue.getType () == CIMTYPE_STRING);
PEGASUS_TEST_ASSERT (!theValue.isArray ());
if (null)
{
PEGASUS_TEST_ASSERT (theValue.isNull ());
}
else
{
PEGASUS_TEST_ASSERT (!theValue.isNull ());
String result;
theValue.get (result);
if (verbose)
{
if (result != value)
{
cerr << "Property value comparison failed. ";
cerr << "Expected " << value << "; ";
cerr << "Actual property value was " << result << "." << endl;
}
}
PEGASUS_TEST_ASSERT (result == value);
}
}
示例3: UninitializedObjectException
CIMPropertyRep::CIMPropertyRep(
const CIMName& name,
const CIMValue& value,
Uint32 arraySize,
const CIMName& referenceClassName,
const CIMName& classOrigin,
Boolean propagated)
:
_name(name), _value(value), _arraySize(arraySize),
_referenceClassName(referenceClassName), _classOrigin(classOrigin),
_propagated(propagated), _refCounter(1), _ownerCount(0)
{
// ensure name is not null
if (name.isNull())
{
throw UninitializedObjectException();
}
// Set the CIM name tag.
_nameTag = generateCIMNameTag(_name);
if ((arraySize != 0) &&
(!value.isArray() || value.getArraySize() != arraySize))
{
throw TypeMismatchException();
}
// A CIM Property may not be of reference array type
if (value.isArray() && (value.getType() == CIMTYPE_REFERENCE))
{
throw TypeMismatchException();
}
// if referenceClassName exists, must be CIMType REFERENCE.
if (!referenceClassName.isNull())
{
if (_value.getType() != CIMTYPE_REFERENCE)
{
throw TypeMismatchException();
}
}
// Can a property be of reference type with a null referenceClassName?
// The DMTF says yes if it is a property of an instance; no if it is a
// property of a class. We'll allow it here, but check in the CIMClass
// addProperty() method.
}
示例4: equal
Boolean CIMKeyBinding::equal(CIMValue value)
{
if (value.isArray())
{
return false;
}
CIMValue kbValue;
try
{
switch (value.getType())
{
case CIMTYPE_CHAR16:
if (getType() != STRING) return false;
kbValue.set(getValue()[0]);
break;
case CIMTYPE_DATETIME:
if (getType() != STRING) return false;
kbValue.set(CIMDateTime(getValue()));
break;
case CIMTYPE_STRING:
if (getType() != STRING) return false;
kbValue.set(getValue());
break;
case CIMTYPE_REFERENCE:
if (getType() != REFERENCE) return false;
kbValue.set(CIMObjectPath(getValue()));
break;
case CIMTYPE_BOOLEAN:
if (getType() != BOOLEAN) return false;
kbValue = XmlReader::stringToValue(0, getValue().getCString(),
value.getType());
break;
// case CIMTYPE_REAL32:
// case CIMTYPE_REAL64:
case CIMTYPE_OBJECT:
case CIMTYPE_INSTANCE:
// From PEP 194: EmbeddedObjects cannot be keys.
return false;
default: // Numerics
if (getType() != NUMERIC) return false;
kbValue = XmlReader::stringToValue(0, getValue().getCString(),
value.getType());
break;
}
}
catch (Exception&)
{
return false;
}
return value.equal(kbValue);
}
示例5: setValue
void CIMPropertyRep::setValue(const CIMValue& value)
{
// CIMType of value is immutable:
if (!value.typeCompatible(_value))
throw TypeMismatchException();
if (_arraySize && _arraySize != value.getArraySize())
throw TypeMismatchException();
// A CIM Property may not be of reference array type
if (value.isArray() && (value.getType() == CIMTYPE_REFERENCE))
{
throw TypeMismatchException();
}
_value = value;
}
示例6: mbInvokeMethod
static CMPIData mbInvokeMethod(
const CMPIBroker *mb,
const CMPIContext *ctx,
const CMPIObjectPath *cop,
const char *method,
const CMPIArgs *in,
CMPIArgs *out,
CMPIStatus *rc)
{
PEG_METHOD_ENTER(
TRC_CMPIPROVIDERINTERFACE,
"CMPI_Broker:mbInvokeMethod()");
CMPIData data = {0,CMPI_nullValue,{0}};
mb = CM_BROKER;
SCMOInstance* scmoObjPath = SCMO_ObjectPath(cop);
CIMObjectPath qop;
try
{
scmoObjPath->getCIMObjectPath(qop);
CIMValue v = CM_CIMOM(mb)->invokeMethod(
*CM_Context(ctx),
SCMO_ObjectPath(cop)->getNameSpace(),
qop,
method ? String(method) : String::EMPTY,
*CM_Args(in),
*CM_Args(out));
CIMType vType=v.getType();
CMPIType t = type2CMPIType(vType,v.isArray());
value2CMPIData(v,t,&data);
if (rc)
{
CMSetStatus(rc,CMPI_RC_OK);
}
}
HandlerCatchSetStatus(rc, data);
PEG_METHOD_EXIT();
return data; // "data" will be valid data or nullValue (in error case)
}
示例7: _checkUint32Value
void _checkUint32Value (CIMValue & theValue, Uint32 value)
{
PEGASUS_TEST_ASSERT (theValue.getType () == CIMTYPE_UINT32);
PEGASUS_TEST_ASSERT (!theValue.isArray ());
PEGASUS_TEST_ASSERT (!theValue.isNull ());
Uint32 result;
theValue.get (result);
if (verbose)
{
if (result != value)
{
cerr << "Property value comparison failed. ";
cerr << "Expected " << value << "; ";
cerr << "Actual property value was " << result << "." << endl;
}
}
PEGASUS_TEST_ASSERT (result == value);
}
示例8: TypeMismatchException
CIMKeyBinding::CIMKeyBinding(const CIMName& name, const CIMValue& value)
{
if (value.isArray())
{
throw TypeMismatchException();
}
String kbValue = value.toString();
Type kbType;
switch (value.getType())
{
case CIMTYPE_BOOLEAN:
kbType = BOOLEAN;
break;
case CIMTYPE_CHAR16:
case CIMTYPE_STRING:
case CIMTYPE_DATETIME:
kbType = STRING;
break;
case CIMTYPE_REFERENCE:
kbType = REFERENCE;
break;
// case CIMTYPE_REAL32:
// case CIMTYPE_REAL64:
case CIMTYPE_OBJECT:
case CIMTYPE_INSTANCE:
// From PEP 194: EmbeddedObjects cannot be keys.
throw TypeMismatchException();
break;
default:
kbType = NUMERIC;
break;
}
_rep = new CIMKeyBindingRep(name, kbValue, kbType);
}
示例9: CIMDataType
void
CIMtoXML(CIMQualifier const& cq, ostream& ostr)
{
CIMFlavor fv;
if (cq.getName().empty())
{
OW_THROWCIMMSG(CIMException::FAILED, "qualifier must have a name");
}
CIMValue dv = cq.getDefaults().getDefaultValue();
CIMDataType dt = cq.getDefaults().getDataType();
CIMValue cv = cq.getValue();
if (!cv)
{
cv = dv;
}
if (cv)
{
if (cv.isArray())
{
dt = CIMDataType(cv.getType(),cv.getArraySize());
}
else
{
dt = CIMDataType(cv.getType());
}
}
OW_ASSERT(dt);
ostr
<< "<QUALIFIER NAME=\""
<< cq.getName()
<< "\" TYPE=\"";
CIMtoXML(dt,ostr);
ostr << "\" ";
if (cq.getPropagated())
{
ostr << "PROPAGATED=\"true\" ";
}
//
// Create flavors
//
fv = CIMFlavor(CIMFlavor::ENABLEOVERRIDE);
if (cq.hasFlavor(fv))
{
//
// Not needed, because OVERRIDABLE defaults to true!
}
else
{
fv = CIMFlavor(CIMFlavor::DISABLEOVERRIDE);
if (cq.hasFlavor(fv))
{
CIMtoXML(fv, ostr);
ostr << "=\"false\" ";
}
}
fv = CIMFlavor(CIMFlavor::TOSUBCLASS);
if (cq.hasFlavor(fv))
{
//
// Not needed, because TOSUBCLASS defaults to true!
}
else
{
fv = CIMFlavor(CIMFlavor::RESTRICTED);
if (cq.hasFlavor(fv))
{
CIMtoXML(fv, ostr);
ostr << "=\"false\" ";
}
}
// This is a bug in the spec, but we still support it for backward compatibility.
//fv = CIMFlavor(CIMFlavor::TOINSTANCE);
//if (cq.hasFlavor(fv))
//{
// CIMtoXML(fv, ostr);
// ostr << "=\"true\" ";
//}
//else
//{
//
// Not needed, because TOINSTANCE defaults to false!
//}
fv = CIMFlavor(CIMFlavor::TRANSLATE);
if (cq.hasFlavor(fv))
{
CIMtoXML(fv, ostr);
ostr << "=\"true\" ";
}
else
{
//
// Not needed, because TRANSLATABLE defaults to false!
}
String lang = cq.getLanguage();
if (!lang.empty())
{
ostr << " xml:lang=\"";
ostr << lang;
//.........这里部分代码省略.........
示例10: CIMtoXML
void CIMtoXML(CIMValue const& cv, ostream& out)
{
if (!cv)
{
OW_THROWCIMMSG(CIMException::FAILED, "CIM value is NULL");
}
if (cv.isArray())
{
switch (cv.getType())
{
case CIMDataType::BOOLEAN:
{
BoolArray a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::UINT8:
{
UInt8Array a;
cv.get(a);
raToXmlNumeric(out, a);
break;
}
case CIMDataType::SINT8:
{
Int8Array a;
cv.get(a);
raToXmlNumeric(out, a);
break;
}
// ATTN: UTF8
case CIMDataType::CHAR16:
{
Char16Array a;
cv.get(a);
raToXmlChar16(out, a);
break;
}
case CIMDataType::UINT16:
{
UInt16Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::SINT16:
{
Int16Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::UINT32:
{
UInt32Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::SINT32:
{
Int32Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::UINT64:
{
UInt64Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::SINT64:
{
Int64Array a;
cv.get(a);
raToXml(out, a);
break;
}
case CIMDataType::REAL32:
{
Real32Array a;
cv.get(a);
realArrayToXml(out, a);
break;
}
case CIMDataType::REAL64:
{
Real64Array a;
cv.get(a);
realArrayToXml(out, a);
break;
}
case CIMDataType::STRING:
{
StringArray a;
cv.get(a);
raToXmlSA(out, a);
//.........这里部分代码省略.........
示例11: getFormattedIndText
String IndicationFormatter::getFormattedIndText(
const CIMInstance & subscription,
const CIMInstance & indication,
const ContentLanguages & contentLangs)
{
PEG_METHOD_ENTER (TRC_IND_FORMATTER,
"IndicationFormatter::getFormattedIndText");
String indicationText;
String textFormat = String::EMPTY;
CIMValue textFormatValue;
CIMValue textFormatParamsValue;
Array<String> textFormatParams;
// get TextFormat from subscription
Uint32 textFormatPos =
subscription.findProperty(_PROPERTY_TEXTFORMAT);
// if the property TextFormat is not found,
// indication is constructed with default format
if (textFormatPos == PEG_NOT_FOUND)
{
indicationText = _formatDefaultIndicationText(indication,
contentLangs);
}
else
{
textFormatValue = subscription.getProperty(textFormatPos).
getValue();
// if the value of textFormat is NULL,
// indication is constructed with default format
if (textFormatValue.isNull())
{
indicationText = _formatDefaultIndicationText(indication,
contentLangs);
}
else
{
// get TextFormatParameters from subscription
Uint32 textFormatParamsPos = subscription.findProperty(
_PROPERTY_TEXTFORMATPARAMETERS);
if (textFormatParamsPos != PEG_NOT_FOUND)
{
textFormatParamsValue = subscription.getProperty(
textFormatParamsPos).getValue();
}
// constructs indication with specified format
if ((textFormatValue.getType() == CIMTYPE_STRING) &&
!(textFormatValue.isArray()))
{
textFormatValue.get(textFormat);
if (!textFormatParamsValue.isNull())
{
if ((textFormatParamsValue.getType() ==
CIMTYPE_STRING) &&
(textFormatParamsValue.isArray()))
{
textFormatParamsValue.get(textFormatParams);
}
}
indicationText = _formatIndicationText(textFormat,
textFormatParams,
indication,
contentLangs);
}
else
{
indicationText = _formatDefaultIndicationText(indication,
contentLangs);
}
}
}
PEG_METHOD_EXIT();
return (indicationText);
}
示例12: _formatDefaultIndicationText
String IndicationFormatter::_formatDefaultIndicationText(
const CIMInstance & indication,
const ContentLanguages & contentLangs)
{
PEG_METHOD_ENTER (TRC_IND_FORMATTER,
"IndicationFormatter::_formatDefaultIndicationText");
CIMInstance indicationInstance = indication.clone();
String propertyName;
String indicationStr;
Uint32 propertyCount = indicationInstance.getPropertyCount();
indicationStr.append("Indication (default format):");
Boolean canLocalize = false;
#if defined(PEGASUS_HAS_ICU) && defined(PEGASUS_INDFORMATTER_USE_ICU)
Locale locale;
canLocalize = _canLocalize(contentLangs, locale);
#endif
for (Uint32 i=0; i < propertyCount; i++)
{
CIMProperty property = indicationInstance.getProperty(i);
propertyName = property.getName().getString();
CIMValue propertyValue = property.getValue();
Boolean valueIsNull = propertyValue.isNull();
Boolean isArray = propertyValue.isArray();
indicationStr.append(propertyName);
indicationStr.append(" = ");
CIMType type = propertyValue.getType();
if (!valueIsNull)
{
if (isArray)
{
indicationStr.append(_getArrayValues(propertyValue, "",
contentLangs));
}
else // value is not an array
{
#if defined(PEGASUS_HAS_ICU) && defined(PEGASUS_INDFORMATTER_USE_ICU)
if (canLocalize)
{
if (type == CIMTYPE_DATETIME)
{
CIMDateTime dateTimeValue;
propertyValue.get(dateTimeValue);
indicationStr.append(_localizeDateTime(dateTimeValue,
locale));
}
else if (type == CIMTYPE_BOOLEAN)
{
Boolean booleanValue;
propertyValue.get(booleanValue);
indicationStr.append(_localizeBooleanStr(booleanValue,
locale));
}
else
{
indicationStr.append(propertyValue.toString());
}
}
else
{
if (type == CIMTYPE_BOOLEAN)
{
indicationStr.append(_getBooleanStr(propertyValue));
}
else
{
indicationStr.append(propertyValue.toString());
}
}
#else
if (type == CIMTYPE_BOOLEAN)
{
indicationStr.append(_getBooleanStr(propertyValue));
}
else
{
indicationStr.append(propertyValue.toString());
}
#endif
}
}
else
{
indicationStr.append("NULL");
}
if (i < propertyCount -1)
{
indicationStr.append(", ");
}
propertyName.clear();
}
//.........这里部分代码省略.........
示例13: handleIndication
void EmailListenerDestination::handleIndication(
const OperationContext& context,
const String nameSpace,
CIMInstance& indication,
CIMInstance& handler,
CIMInstance& subscription,
ContentLanguages & contentLanguages)
{
PEG_METHOD_ENTER (TRC_IND_HANDLER,
"EmailListenerDestination::handleIndication");
String indicationText;
try
{
// gets formatted indication message
indicationText = IndicationFormatter::getFormattedIndText(
subscription, indication, contentLanguages);
// get MailTo from handler instance
Array<String> mailTo;
handler.getProperty(handler.findProperty(
PEGASUS_PROPERTYNAME_LSTNRDST_MAILTO)).getValue().get(mailTo);
// get MailSubject from handler instance
String mailSubject = String::EMPTY;
handler.getProperty(handler.findProperty(
PEGASUS_PROPERTYNAME_LSTNRDST_MAILSUBJECT)).getValue().get(
mailSubject);
// get MailCc from handler instance
CIMValue mailCcValue;
Array<String> mailCc;
Uint32 posMailCc = handler.findProperty(
PEGASUS_PROPERTYNAME_LSTNRDST_MAILCC);
if (posMailCc != PEG_NOT_FOUND)
{
mailCcValue = handler.getProperty(posMailCc).getValue();
}
if (!mailCcValue.isNull())
{
if ((mailCcValue.getType() == CIMTYPE_STRING) &&
(mailCcValue.isArray()))
{
mailCcValue.get(mailCc);
}
}
// Sends the formatted indication to the specified recipients
_sendViaEmail(mailTo, mailCc, mailSubject, indicationText);
}
catch (CIMException & c)
{
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4, c.getMessage());
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION (CIM_ERR_FAILED, c.getMessage());
}
catch (Exception& e)
{
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4, e.getMessage());
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION (CIM_ERR_FAILED, e.getMessage());
}
catch (...)
{
PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4,
"Failed to deliver indication via e-mail.");
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
MessageLoaderParms("Handler.EmailListenerDestination."
"EmailListenerDestination.FAILED_TO_DELIVER_INDICATION_VIA_EMAIL",
"Failed to deliver indication via e-mail."));
}
PEG_METHOD_EXIT();
}
示例14: _getIndPropertyValue
String IndicationFormatter::_getIndPropertyValue(
const String & specifiedPropertyName,
const String & arrayIndexStr,
const CIMInstance & indication,
const ContentLanguages & contentLangs)
{
PEG_METHOD_ENTER (TRC_IND_FORMATTER,
"IndicationFormatter::_getIndPropertyValue");
CIMInstance indicationInstance = indication.clone();
String propertyName;
Boolean canLocalize = false;
#if defined(PEGASUS_HAS_ICU) && defined(PEGASUS_INDFORMATTER_USE_ICU)
Locale locale;
canLocalize = _canLocalize(contentLangs, locale);
#endif
for (Uint32 i=0; i < indicationInstance.getPropertyCount(); i++)
{
CIMProperty property = indicationInstance.getProperty(i);
propertyName = property.getName().getString();
// get specified property value
if (String::equalNoCase(propertyName, specifiedPropertyName))
{
CIMValue propertyValue = property.getValue();
Boolean valueIsNull = propertyValue.isNull();
CIMType type = propertyValue.getType();
if (!valueIsNull)
{
Boolean isArray = propertyValue.isArray();
if (isArray)
{
PEG_METHOD_EXIT();
return (_getArrayValues(propertyValue, arrayIndexStr,
contentLangs));
}
else // value is not an array
{
#if defined(PEGASUS_HAS_ICU) && defined(PEGASUS_INDFORMATTER_USE_ICU)
if (canLocalize)
{
if (type == CIMTYPE_DATETIME)
{
CIMDateTime dateTimeValue;
propertyValue.get(dateTimeValue);
PEG_METHOD_EXIT();
return(_localizeDateTime(dateTimeValue, locale));
}
else if (type == CIMTYPE_BOOLEAN)
{
Boolean booleanValue;
propertyValue.get(booleanValue);
PEG_METHOD_EXIT();
return(_localizeBooleanStr(booleanValue, locale));
}
else
{
PEG_METHOD_EXIT();
return (propertyValue.toString());
}
}
else
{
if (type == CIMTYPE_BOOLEAN)
{
PEG_METHOD_EXIT();
return (_getBooleanStr(propertyValue));
}
else
{
PEG_METHOD_EXIT();
return (propertyValue.toString());
}
}
#else
if (type == CIMTYPE_BOOLEAN)
{
PEG_METHOD_EXIT();
return (_getBooleanStr(propertyValue));
}
else
{
PEG_METHOD_EXIT();
return (propertyValue.toString());
}
#endif
}
}
else // value is NULL
{
PEG_METHOD_EXIT();
return ("NULL");
}
//.........这里部分代码省略.........
示例15: getValue
/*
Get the value of the defined property (including looping through
chained properties) and convert that value to an FQLOperand.
*/
Boolean FQLInstancePropertySource::getValue(
const String& propertyName,
FQLOperand& value) const
{
CIMValue val;
CIMType type;
#ifdef ENABLE_LOCAL_DIAGNOSTICS
DCOUT << "getValue " << propertyName << " isChained "
<< boolToString(value.isChained()) << endl;
#endif
// if dotted property, return the embedded instance or false if
// the value is NOT an instance.
if (value.isChained())
{
if (!_getPropertyValue(ci, propertyName, val))
{
// Property could not be found, return false.
return false;
}
type=val.getType();
if (type != CIMTYPE_INSTANCE)
{
return false;
}
else
{
CIMInstance ciLocal;
val.get(ciLocal);
if (value.isChained())
{
PEGASUS_ASSERT(value.chainSize() != 0);
// If this property is chained, resolve the property chain
FQLOperand x;
Uint32 chainSize = value.chainSize();
Uint32 lastEntry = chainSize - 1;
for (Uint32 i = 0; i < chainSize; i++)
{
// Get chained operand and get name from it
x = value.chainItem(i);
String pName = x.getPropertyName();
// Get name from the chain item
if (!_getPropertyValue(ciLocal, pName, val))
{
// Property could not be found, return false.
return false;
}
type=val.getType();
if (type == CIMTYPE_INSTANCE)
{
if (i == lastEntry)
{
return false;
}
else
{
val.get(ciLocal);
}
}
else
{
if (i != lastEntry)
{
return false;
}
}
}
}
}
}
else
{
unsigned int pos=ci.findProperty(propertyName);
if (pos==PEG_NOT_FOUND)
{
// Property could not be found, return false.
return false;
}
val=ci.getProperty(pos).getValue();
type=val.getType();
}
if (val.isNull())
{
value=FQLOperand();
return true;
}
if (val.isArray())
{
//.........这里部分代码省略.........