本文整理汇总了C++中Capability::getFragmentation方法的典型用法代码示例。如果您正苦于以下问题:C++ Capability::getFragmentation方法的具体用法?C++ Capability::getFragmentation怎么用?C++ Capability::getFragmentation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Capability
的用法示例。
在下文中一共展示了Capability::getFragmentation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: internalMatchProfile
bool ProfileDB::internalMatchProfile(Profile* profile,
vector<Capability>& requiredCapabilites,
vector<Capability>& optionalCapabilites, string& matchToken) {
bool match = true;
// When can we NOT reuse a specific runtime?
// Only if fragmentation is set to BUILDTIME and if either a) one supports the capability and
// the other does not OR b) the capability value differs.
// So we add strings to create a unique match token for every
// runtime that need be built
for (vector<Capability>::iterator capability = requiredCapabilites.begin(); capability
!= requiredCapabilites.end(); capability++) {
Capability matchedCapability = profile->getCapability(
capability->getName());
CapabilityState matchedState = matchedCapability.getState();
// Ok, so we don't support this, bail out!
if (matchedState == NOT_IMPLEMENTED || matchedState == UNSUPPORTED) {
match = false;
}
Fragmentation fragmentation = matchedCapability.getFragmentation();
string valueStr =
fragmentation == BUILDTIME ? matchedCapability.getValue() : "";
matchToken.append(valueStr);
matchToken.append("|");
}
// So, the optional capabilities are matched in a different way.
// We add stuff to the matchTokens string to produce a string that
// is unique to the optional capabilities being matched.
for (vector<Capability>::iterator capability = optionalCapabilites.begin(); capability
!= optionalCapabilites.end(); capability++) {
Capability matchedCapability = profile->getCapability(
capability->getName());
CapabilityState matchedState = matchedCapability.getState();
Fragmentation fragmentation = matchedCapability.getFragmentation();
string valueStr =
fragmentation == BUILDTIME ? matchedCapability.getValue() : "";
bool capSupported = fragmentation == BUILDTIME && (matchedState
== NOT_IMPLEMENTED || matchedState == UNSUPPORTED);
matchToken.append((capSupported ? "+" : "-") + valueStr);
matchToken.append("|");
}
// Finally we add PROPERTIES of the runtime which are buildtime fragmented.
// For example, different device types or icon sizes should always generate
// a unique runtime.
set<string> allCapabilities = profile->getCapabilities();
for (set<string>::iterator allCapabilitesIt = allCapabilities.begin(); allCapabilitesIt
!= allCapabilities.end(); allCapabilitesIt++) {
string capabilityName = *allCapabilitesIt;
Capability capability = profile->getCapability(capabilityName);
if (capability.getType() == "property") {
Fragmentation fragmentation = capability.getFragmentation();
string valueStr =
fragmentation == BUILDTIME ? capability.getValue() : "-";
matchToken.append(valueStr);
matchToken.append("|");
}
}
return match;
}