本文整理汇总了C++中StringPiece::endsWith方法的典型用法代码示例。如果您正苦于以下问题:C++ StringPiece::endsWith方法的具体用法?C++ StringPiece::endsWith怎么用?C++ StringPiece::endsWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringPiece
的用法示例。
在下文中一共展示了StringPiece::endsWith方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
TEST(StringPiece, SuffixEmpty) {
StringPiece a;
EXPECT_TRUE(a.endsWith(""));
EXPECT_FALSE(a.endsWith("a"));
EXPECT_FALSE(a.endsWith('a'));
EXPECT_TRUE(a.removeSuffix(""));
EXPECT_EQ("", a);
EXPECT_FALSE(a.removeSuffix("a"));
EXPECT_EQ("", a);
EXPECT_FALSE(a.removeSuffix('a'));
EXPECT_EQ("", a);
}
示例2: parseMessage
void parseMessage(StringPiece msg, size_t* threadID, size_t* messageIndex) {
// Validate and strip off the message prefix and suffix
constexpr StringPiece prefix{"thread "};
if (!msg.startsWith(prefix)) {
throw std::runtime_error("bad message prefix");
}
msg.advance(prefix.size());
if (!msg.endsWith(kMsgSuffix)) {
throw std::runtime_error("bad message suffix");
}
msg.subtract(kMsgSuffix.size());
// Parse then strip off the thread index
auto threadIDEnd = msg.find(' ');
if (threadIDEnd == StringPiece::npos) {
throw std::runtime_error("no middle found");
}
*threadID = folly::to<size_t>(msg.subpiece(0, threadIDEnd));
msg.advance(threadIDEnd);
// Validate that the middle of the message is what we expect,
// then strip it off
constexpr StringPiece middle{" message "};
if (!msg.startsWith(middle)) {
throw std::runtime_error("bad message middle");
}
msg.advance(middle.size());
// Parse the message index
*messageIndex = folly::to<size_t>(msg);
}
示例3: messageReceived
void messageReceived(StringPiece msg) {
if (msg.endsWith(" log messages discarded: "
"logging faster than we can write")) {
auto discardCount = folly::to<size_t>(msg.subpiece(0, msg.find(' ')));
XLOG(DBG3, "received discard notification: ", discardCount);
numDiscarded_ += discardCount;
++discardEventsSeen_;
return;
}
size_t threadID = 0;
size_t messageIndex = 0;
try {
parseMessage(msg, &threadID, &messageIndex);
} catch (const std::exception& ex) {
++numUnableToParse_;
XLOG(ERR, "unable to parse log message: ", msg);
return;
}
auto& data = perThreadReadData_[threadID];
data.numMessagesRead++;
if (messageIndex > data.lastId) {
data.lastId = messageIndex;
} else {
++numOutOfOrder_;
XLOG(ERR) << "received out-of-order messages from writer " << threadID
<< ": " << messageIndex << " received after " << data.lastId;
}
}