本文整理汇总了C++中raknet::RakString::IsEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ RakString::IsEmpty方法的具体用法?C++ RakString::IsEmpty怎么用?C++ RakString::IsEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类raknet::RakString
的用法示例。
在下文中一共展示了RakString::IsEmpty方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RakString
const RakNet::RakString operator+(const RakNet::RakString &lhs, const RakNet::RakString &rhs)
{
if (lhs.IsEmpty() && rhs.IsEmpty())
return RakString(&RakString::emptyString);
if (lhs.IsEmpty())
{
rhs.sharedString->refCount++;
return RakString(rhs.sharedString);
}
if (rhs.IsEmpty())
{
lhs.sharedString->refCount++;
return RakString(lhs.sharedString);
}
size_t len1 = lhs.GetLength();
size_t len2 = rhs.GetLength();
size_t allocatedBytes = len1 + len2 + 1;
allocatedBytes = RakString::GetSizeToAllocate(allocatedBytes);
RakString::SharedString *sharedString;
RakString::LockMutex();
// sharedString = RakString::pool.Allocate();
if (RakString::freeList.Size()==0)
{
//RakString::sharedStringFreeList=(RakString::SharedString*) rakRealloc_Ex(RakString::sharedStringFreeList,(RakString::sharedStringFreeListAllocationCount+1024)*sizeof(RakString::SharedString), __FILE__, __LINE__);
unsigned i;
for (i=0; i < 1024; i++)
{
// RakString::freeList.Insert(RakString::sharedStringFreeList+i+RakString::sharedStringFreeListAllocationCount);
RakString::freeList.Insert((RakString::SharedString*)rakMalloc_Ex(sizeof(RakString::SharedString), __FILE__, __LINE__), __FILE__, __LINE__);
}
//RakString::sharedStringFreeListAllocationCount+=1024;
}
sharedString = RakString::freeList[RakString::freeList.Size()-1];
RakString::freeList.RemoveAtIndex(RakString::freeList.Size()-1);
RakString::UnlockMutex();
const int smallStringSize = 128-sizeof(unsigned int)-sizeof(size_t)-sizeof(char*)*2;
sharedString->bytesUsed=allocatedBytes;
sharedString->refCount=1;
if (allocatedBytes <= (size_t) smallStringSize)
{
sharedString->c_str=sharedString->smallString;
}
else
{
sharedString->bigString=(char*)rakMalloc_Ex(sharedString->bytesUsed, __FILE__, __LINE__);
sharedString->c_str=sharedString->bigString;
}
strcpy(sharedString->c_str, lhs);
strcat(sharedString->c_str, rhs);
return RakString(sharedString);
}
示例2: UpdateServerNameOrPassword
void Rackspace::UpdateServerNameOrPassword(RakNet::RakString serverId, RakNet::RakString newName, RakNet::RakString newPassword)
{
if (newName.IsEmpty() && newPassword.IsEmpty())
return;
RakNet::RakString xml(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<server xmlns=\"http://docs.rackspacecloud.com/servers/api/v1.0\""
);
if (newName.IsEmpty()==false)
xml += RakNet::RakString(" name=\"%s\"", newName.C_String());
if (newPassword.IsEmpty()==false)
xml += RakNet::RakString(" adminPass=\"%s\"", newPassword.C_String());
xml += " />";
AddOperation(RO_UPDATE_SERVER_NAME_OR_PASSWORD, "PUT", RakNet::RakString("servers/%s", serverId.C_String()), xml);
}
示例3: AddPassword
bool TwoWayAuthentication::AddPassword(RakNet::RakString identifier, RakNet::RakString password)
{
if (password.IsEmpty())
return false;
if (identifier.IsEmpty())
return false;
if (password==identifier)
return false; // Insecure
if (passwords.GetIndexOf(identifier.C_String()).IsInvalid()==false)
return false; // This identifier already in use
passwords.Push(identifier, password,_FILE_AND_LINE_);
return true;
}
示例4: CreateSharedIPGroup
void Rackspace::CreateSharedIPGroup(RakNet::RakString name, RakNet::RakString optionalServerId)
{
RakNet::RakString xml(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<sharedIpGroup xmlns=\"http://docs.rackspacecloud.com/servers/api/v1.0\" name=\"%s\">", name.C_String());
if (optionalServerId.IsEmpty()==false)
xml+=RakNet::RakString("<server id=\"%s\"/>", optionalServerId.C_String());
xml+="</sharedIpGroup>";
AddOperation(RO_CREATE_SHARED_IP_GROUP, "POST", "shared_ip_groups", xml);
}
示例5: PushToUser
void TwoWayAuthentication::PushToUser(MessageID messageId, RakNet::RakString password, RakNet::AddressOrGUID remoteSystem)
{
RakNet::BitStream output;
output.Write(messageId);
if (password.IsEmpty()==false)
output.Write(password);
Packet *p = AllocatePacketUnified(output.GetNumberOfBytesUsed());
p->systemAddress=remoteSystem.systemAddress;
p->systemAddress.systemIndex=(SystemIndex)-1;
p->guid=remoteSystem.rakNetGuid;
p->wasGeneratedLocally=true;
memcpy(p->data, output.GetData(), output.GetNumberOfBytesUsed());
rakPeerInterface->PushBackPacket(p, true);
}
示例6: EncodeQueryUpdate
void PostgreSQLInterface::EncodeQueryUpdate(const char *colName, float value, RakNet::RakString &valueStr, int &numParams, char **paramData, int *paramLength, int *paramFormat)
{
(void)numParams;
(void)paramData;
(void)paramLength;
(void)paramFormat;
if (valueStr.IsEmpty()==false)
{
valueStr += ", ";
}
valueStr += colName;
valueStr += " = ";
valueStr += FormatString("%f", value);
}
示例7: EncodeQueryInput
void PostgreSQLInterface::EncodeQueryInput(const char *colName, int value, RakNet::RakString ¶mTypeStr, RakNet::RakString &valueStr, int &numParams, char **paramData, int *paramLength, int *paramFormat)
{
(void)numParams;
(void)paramData;
(void)paramLength;
(void)paramFormat;
if (paramTypeStr.IsEmpty()==false)
{
paramTypeStr += ", ";
valueStr += ", ";
}
paramTypeStr += colName;
valueStr += FormatString("%i", value);
}
示例8:
void PHPDirectoryServer2::SetField( RakNet::RakString columnName, RakNet::RakString value )
{
if (columnName.IsEmpty())
return;
if (columnName==GAME_NAME_COMMAND ||
columnName==GAME_PORT_COMMAND ||
columnName==LAST_UPDATE_COMMAND)
{
RakAssert("PHPDirectoryServer2::SetField attempted to set reserved column name" && 0);
return;
}
fields.Set(columnName, value);
}
示例9: if
void Lobby2Server::OnChangeHandle(Lobby2ServerCommand *command, bool calledFromThread)
{
if (calledFromThread)
{
ThreadAction ta;
ta.action=L2MID_Client_ChangeHandle;
ta.command=*command;
threadActionQueueMutex.Lock();
threadActionQueue.Push(ta, __FILE__, __LINE__ );
threadActionQueueMutex.Unlock();
return;
}
unsigned int i;
RakNet::RakString oldHandle;
for (i=0; i < users.Size(); i++)
{
if (users[i]->callerUserId==command->callerUserId)
{
oldHandle=users[i]->userName;
users[i]->userName=command->callingUserName;
break;
}
}
if (oldHandle.IsEmpty())
return;
#if defined(__INTEGRATE_LOBBY2_WITH_ROOMS_PLUGIN)
// Tell the rooms plugin about the handle change
if (roomsPlugin)
{
roomsPlugin->ChangeHandle(oldHandle, command->callingUserName);
}
else if (roomsPluginAddress!=UNASSIGNED_SYSTEM_ADDRESS)
{
RakNet::BitStream bs;
RoomsPlugin::SerializeChangeHandle(oldHandle,command->callingUserName,&bs);
SendUnified(&bs,packetPriority, RELIABLE_ORDERED, orderingChannel, roomsPluginAddress, false);
}
#endif
}
示例10:
bool SQLite3ServerPlugin::AddDBHandle(RakNet::RakString dbIdentifier, sqlite3 *dbHandle, bool dbAutoCreated)
{
if (dbIdentifier.IsEmpty())
return false;
DataStructures::DefaultIndexType idx = dbHandles.GetInsertionIndex(dbIdentifier);
if (idx==(DataStructures::DefaultIndexType)-1)
return false;
NamedDBHandle ndbh;
ndbh.dbHandle=dbHandle;
ndbh.dbIdentifier=dbIdentifier;
ndbh.dbAutoCreated=dbAutoCreated;
ndbh.whenCreated=RakNet::GetTimeMS();
dbHandles.InsertAtIndex(ndbh,idx,__FILE__,__LINE__);
#ifdef SQLite3_STATEMENT_EXECUTE_THREADED
if (sqlThreadPool.WasStarted()==false)
sqlThreadPool.StartThreads(1,0);
#endif
return true;
}
示例11: InitialData
void InitialData( RakNet::BitStream * pBitStream, RakNet::Packet * pPacket )
{
// Read the player id
EntityId playerId;
pBitStream->ReadCompressed( playerId );
// Read the player colour
unsigned int uiColour;
pBitStream->Read( uiColour );
// Read the server name string
RakNet::RakString strServerName;
pBitStream->Read( strServerName );
// Read the max player count
int iMaxPlayers;
pBitStream->Read( iMaxPlayers );
// Read the http server address
RakNet::RakString strHttpServer;
pBitStream->Read( strHttpServer );
// Read the http server port
int iPort;
pBitStream->Read( iPort );
// Set the season
pCore->SetSummer ( pBitStream->ReadBit() );
CLogFile::Printf ( "Season: %s", (pCore->IsSummer () ? "Summer" : "Winter") );
// Read the weather
RakNet::RakString strWeather;
pBitStream->Read ( strWeather );
// Set the localplayer id
pCore->GetPlayerManager()->GetLocalPlayer()->SetId( playerId );
// Set the localplayer colour
pCore->GetPlayerManager()->GetLocalPlayer()->SetColour( uiColour );
// Set the server name string
pCore->SetServerName( String( strServerName ) );
// Set the server max player count
pCore->SetServerMaxPlayers( iMaxPlayers );
// Set the file transfer information
pCore->GetFileTransferManager()->SetServerInformation( strHttpServer.IsEmpty() ? pCore->GetHost() : strHttpServer.C_String(), iPort );
//
pCore->GetChat()->AddInfoMessage( "Successfully connected to %s.", strServerName.C_String() );
// Get the server folder string
String strServerFolder = SharedUtility::GetAbsolutePath( SharedUtility::GetClientScriptFolder( pCore->GetHost(), pCore->GetPort() ) );
// Does the folder not exist?
if( !SharedUtility::Exists( strServerFolder.Get() ) )
{
// Create the folder
SharedUtility::CreateDirectory( strServerFolder.Get() );
}
// Set the weather
pCore->GetGame()->ChangeWeather ( strWeather.C_String (), 1000 );
}
示例12: run
//.........这里部分代码省略.........
if (device->getFileSystem()->existFile("map-20kdm2.pk3"))
device->getFileSystem()->addFileArchive("map-20kdm2.pk3", true, true, io::EFAT_ZIP);
else
device->getFileSystem()->addFileArchive(IRRLICHT_MEDIA_PATH "map-20kdm2.pk3", true, true, io::EFAT_ZIP);
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
gui::IGUIEnvironment* guienv = device->getGUIEnvironment();
device->setWindowCaption(L"Irrlicht Engine Demo");
// set ambient light
smgr->setAmbientLight ( video::SColorf ( 0x00c0c0c0 ) );
// wchar_t tmp[255];
// RakNet startup
char dest[1024];
memset(dest,0,sizeof(dest));
wcstombs(dest, playerName.c_str(), playerName.size());
InstantiateRakNetClasses();
// Hook RakNet stuff into this class
playerReplica->playerName=RakNet::RakString(dest);
playerReplica->demo=this;
replicaManager3->demo=this;
CalculateSyndeyBoundingBox();
// draw everything
s32 now = 0;
sceneStartTime = device->getTimer()->getTime();
while(device->run() && driver)
{
// RakNet: Render even if not active, multiplayer never stops
//if (device->isWindowActive())
{
#ifdef USE_IRRKLANG
// update 3D position for sound engine
scene::ICameraSceneNode* cam = smgr->getActiveCamera();
if (cam && irrKlang)
irrKlang->setListenerPosition(cam->getAbsolutePosition(), cam->getTarget());
#endif
// load next scene if necessary
now = device->getTimer()->getTime();
if (now - sceneStartTime > timeForThisScene && timeForThisScene!=-1)
switchToNextScene();
createParticleImpacts();
driver->beginScene(timeForThisScene != -1, true, backColor);
smgr->drawAll();
guienv->drawAll();
driver->endScene();
/*
// write statistics
static s32 lastfps = 0;
s32 nowfps = driver->getFPS();
swprintf(tmp, 255, L"%ls fps:%3d triangles:%0.3f mio",
driver->getName(),
driver->getFPS(),
(f32) driver->getPrimitiveCountDrawn( 1 ) * ( 1.f / 1000000.f )
);
if ( nowfps != lastfps )
{
device->setWindowCaption ( tmp );
lastfps = nowfps;
}
*/
RakNet::RakString curMsg = GetCurrentMessage();
if (curMsg.IsEmpty()==false)
{
wchar_t dest[1024];
memset(dest,0,sizeof(dest));
mbstowcs(dest, curMsg.C_String(), curMsg.GetLength());
statusText->setText(dest);
}
else
{
// statusText->setText(tmp);
statusText->setText(0);
}
}
// RakNet per tick update
UpdateRakNet();
}
// RakNet shutdown
DeinitializeRakNetClasses();
device->drop();
}