本文整理汇总了C++中BString::substring方法的典型用法代码示例。如果您正苦于以下问题:C++ BString::substring方法的具体用法?C++ BString::substring怎么用?C++ BString::substring使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BString
的用法示例。
在下文中一共展示了BString::substring方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleCancelShutdownGalaxy
BString ObjectController::handleCancelShutdownGalaxy(BString message) const
{
int8 replyData[128];
if (!AdminManager::Instance()->shutdownPending())
{
sprintf(replyData,"No shutdown in progress");
}
else
{
sprintf(replyData,"OK");
// We have no idea of how much white space are inserted in string...
BString ansiData;
int32 index = indexOfFirstField(message);
if (index < 0)
{
// We may not have any "next field", it's optional here.
index = 0;
ansiData = "";
}
else
{
// Now we can get the broadcaste from the message.
// Remove first field from message.
ansiData.setLength(message.getLength());
message.substring(ansiData, static_cast<uint16>(index), message.getLength());
}
// Send request to all zones, via chatserver.
this->cancelScheduledShutdown(ansiData);
}
return replyData;
}
示例2: handleBroadcastGalaxy
BString ObjectController::handleBroadcastGalaxy(BString message) const
{
int8* replyStr = "OK";
int8 rawData[128];
// We have no idea of how much white space are inserted in string...
int32 index = indexOfFirstField(message);
if (index >= 0)
{
// Now we can get the broadcast from the message.
// Remove white space from start of message.
BString ansiData;
ansiData.setLength(message.getLength());
message.substring(ansiData, static_cast<uint16>(index), message.getLength());
// Any valid message?
int32 elementCount = sscanf(ansiData.getAnsi(), "%80s", rawData);
if (elementCount > 0)
{
this->broadcastGalaxyMessage(ansiData, -1);
}
else
{
replyStr = "No broadcast supplied";
}
}
else
{
replyStr = "No valid broadcast supplied";
}
return replyStr;
}
示例3: handleShutdownGalaxy
BString ObjectController::handleShutdownGalaxy(BString message) const
{
int8 replyData[128];
if (AdminManager::Instance()->shutdownPending())
{
sprintf(replyData,"Shutdown already in progress");
}
else
{
sprintf(replyData,"OK");
// Get time for shutdown
//
int32 minutesToShutdown;
int32 elementCount = sscanf(message.getAnsi(), "%3d", &minutesToShutdown);
// string planet(rawData);
if (elementCount > 0)
{
// We have no idea of how much white space are inserted in string...
BString ansiData;
int32 index = indexOfNextField(message);
if (index < 0)
{
// We may not have any "next field", it's optional here.
index = 0;
ansiData = "";
}
else
{
// Now we can get the broadcaste from the message.
// Remove first field from message.
ansiData.setLength(message.getLength());
message.substring(ansiData, static_cast<uint16>(index), message.getLength());
}
// Validate the timeout.
if (minutesToShutdown >= 0)
{
// Any valid message?
int8 rawData[128];
elementCount = sscanf(ansiData.getAnsi(), "%80s", rawData);
// Send request to all zones, via chatserver.
this->scheduleShutdown(minutesToShutdown*60, ansiData);
}
else
{
sprintf(replyData,"%d is not valid shutdown time", minutesToShutdown);
}
}
else
{
sprintf(replyData,"No shutdown time supplied");
}
}
return replyData;
}
示例4: handleBroadcastPlanet
BString ObjectController::handleBroadcastPlanet(BString message) const
{
// Get planet name
int8 rawData[128];
rawData[0] = 0;
int32 elementCount = sscanf(message.getAnsi(), "%80s", rawData);
BString planet(rawData);
if (elementCount > 0)
{
// Yes. Validate the planet name.
int32 planetId = gWorldManager->getPlanetIdByNameLike(planet);
if (planetId >= 0)
{
// We have no idea of how much white space are inserted in string...
int32 index = indexOfNextField(message);
if (index > 0)
{
// Now we can get the broadcaste from the message.
// Remove planet name from message.
BString ansiData;
ansiData.setLength(message.getLength());
message.substring(ansiData, static_cast<uint16>(index), message.getLength());
// Any valid message?
elementCount = sscanf(ansiData.getAnsi(), "%80s", rawData);
if (elementCount > 0)
{
// string planetName(gWorldManager->getPlanetNameById(planetId));
this->broadcastGalaxyMessage(ansiData, planetId);
sprintf(rawData,"OK");
}
else
{
sprintf(rawData,"No broadcast supplied");
}
}
else
{
sprintf(rawData,"No valid broadcast supplied");
}
}
else
{
sprintf(rawData,"%s is not valid planet name", planet.getAnsi());
}
}
else
{
sprintf(rawData,"Missing planet name");
}
return rawData;
}
示例5: removeWhiteSpace
BString ObjectController::removeWhiteSpace(BString str) const
{
int32 index = indexOfFirstField(str);
if (index > 0)
{
// Remove white space from start of message.
BString resultStr;
resultStr.setLength(str.getLength());
str.substring(resultStr, static_cast<uint16>(index), str.getLength());
return resultStr;
}
// Nothing we can do about that string... good or bad.
return str;
}
示例6: skipToNextField
BString ObjectController::skipToNextField(BString str) const
{
int32 index = indexOfNextField(str);
if (index < 0)
{
// Not all commands have payload.
index = str.getLength();
}
// Remove white space from start of message.
BString resultStr;
resultStr.setLength(str.getLength());
str.substring(resultStr, static_cast<uint16>(index), str.getLength());
return resultStr;
}
示例7: _handleAdminSysMsg
void ObjectController::_handleAdminSysMsg(uint64 targetId,Message* message,ObjectControllerCmdProperties* cmdProperties)
{
bool status = false;
BString dataStr;
message->getStringUnicode16(dataStr);
PlayerObject* player = dynamic_cast<PlayerObject*>(mObject);
if ((player) && (player->isConnected()))
{
// gMessageLib->sendSystemMessage(player, dataStr, true);
dataStr.convert(BSTRType_ANSI);
gLogger->log(LogManager::DEBUG,"Admin (%s): %s", player->getFirstName().getAnsi(), dataStr.getAnsi());
}
else
{
dataStr.convert(BSTRType_ANSI);
gLogger->log(LogManager::DEBUG,"Admin (anon): %s", dataStr.getAnsi());
}
int8 rawData[128];
rawData[0] = 0;
if (dataStr.getLength())
{
int32 elementCount = sscanf(dataStr.getAnsi(), "%80s", rawData);
BString adminCommand(rawData);
if (elementCount > 0)
{
int32 commandIndex = this->getAdminCommandFunction(adminCommand);
if (commandIndex >= 0)
{
// We have a valid command name, but strip it. It can be an abreviation.
int32 index = indexOfNextField(dataStr);
if (index < 0)
{
// Not all commands have payload.
index = dataStr.getLength();
}
BString ansiData;
ansiData.setLength(dataStr.getLength());
dataStr.substring(ansiData,static_cast<uint16>(index), dataStr.getLength());
// Now ADD a proper spelled command. It HAS to match the crc.
BString newCommandString;
newCommandString.setLength(adminCommands[commandIndex].command.getLength() + ansiData.getLength() + 1);
sprintf(newCommandString.getAnsi(),"%s %s", adminCommands[commandIndex].command.getAnsi(), ansiData.getAnsi());
// Execute the command.
BString opcodeStr(adminCommands[commandIndex].command);
opcodeStr.toLower();
newCommandString.convert(BSTRType_Unicode16);
// Now let's parse it BACK to objectcontroller, so we can continue to maintain access rights control as initial designed.
gMessageFactory->StartMessage();
gMessageFactory->addUint32(0); // clientTicks, We do not have these, here.
gMessageFactory->addUint32(0); // sequence number, we really need this
gMessageFactory->addUint32(opcodeStr.getCrc()); // opCode for new command.
gMessageFactory->addUint64(targetId);
gMessageFactory->addString(newCommandString);
Message* newMessage = gMessageFactory->EndMessage();
newMessage->ResetIndex();
this->enqueueCommandMessage(newMessage);
status = true;
}
else
{
// Invalid command.
sprintf(rawData,"Admin: [%s No such command]", adminCommand.getAnsi());
}
}
else
{
sprintf(rawData,"Admin: [Unexpected error]");
}
}
else
{
sprintf(rawData,"Admin: [Missing command]");
}
// Send reply to caller.
if (!status)
{
this->sendAdminFeedback(rawData);
}
}