本文整理汇总了C++中folly::StringPiece::endsWith方法的典型用法代码示例。如果您正苦于以下问题:C++ StringPiece::endsWith方法的具体用法?C++ StringPiece::endsWith怎么用?C++ StringPiece::endsWith使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类folly::StringPiece
的用法示例。
在下文中一共展示了StringPiece::endsWith方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
const std::vector<McrouterRouteHandlePtr>*
RouteHandleMap::getTargetsForKeyFast(folly::StringPiece prefix,
folly::StringPiece key) const {
// empty prefix => route to default route
if (prefix.empty()) {
return &getBySingleRoute(defaultRoute_, key);
}
// route to all routes
if (prefix == "/*/*/") {
return &allRoutes_->getTargetsForKey(key);
}
auto starPos = prefix.find("*");
if (starPos == std::string::npos) {
// no stars at all
return &getBySingleRoute(prefix, key);
}
if (prefix.endsWith("/*/") && starPos == prefix.size() - 2) {
// route to all clusters of some region (/region/*/)
auto region = prefix.subpiece(1, prefix.size() - 4);
auto it = byRegion_.find(region);
if (it == byRegion_.end()) {
return &emptyV_;
}
return &it->second->getTargetsForKey(key);
}
// no other types supported
return nullptr;
}
示例2: if
const std::vector<McrouterRouteHandlePtr>*
RouteHandleMap::getTargetsForKeyFast(folly::StringPiece prefix,
folly::StringPiece key) const {
const std::vector<McrouterRouteHandlePtr>* result = nullptr;
if (prefix.empty()) {
// empty prefix => route to default route
result = &defaultRouteMap_->getTargetsForKey(key);
} else if (prefix == "/*/*/") {
// route to all routes
result = &allRoutes_->getTargetsForKey(key);
} else {
auto starPos = prefix.find("*");
if (starPos == std::string::npos) {
// no stars at all
auto it = byRoute_.find(prefix);
result = it == byRoute_.end()
? &emptyV_
: &it->second->getTargetsForKey(key);
} else if (prefix.endsWith("/*/") && starPos == prefix.size() - 2) {
// route to all clusters of some region (/region/*/)
auto region = prefix.subpiece(1, prefix.size() - 4);
auto it = byRegion_.find(region);
result = it == byRegion_.end()
? &emptyV_
: &it->second->getTargetsForKey(key);
}
}
if (sendInvalidRouteToDefault_ && result != nullptr && result->empty()) {
return &defaultRouteMap_->getTargetsForKey(key);
}
return result;
}