Files
SLikeNet/Samples/Tests/TestHelpers.cpp
2025-11-24 14:19:51 +05:30

133 lines
3.2 KiB
C++

/*
* Copyright (c) 2014, Oculus VR, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* RakNet License.txt file in the licenses directory of this source tree. An additional grant
* of patent rights can be found in the RakNet Patents.txt file in the same directory.
*
*/
#include "TestHelpers.h"
TestHelpers::TestHelpers(void)
{
}
TestHelpers::~TestHelpers(void)
{
}
void TestHelpers::StandardServerPrep(RakPeerInterface *&server)
{
server=RakPeerInterface::GetInstance();
server->Startup(1,&SocketDescriptor(60000,0),1);
server->SetMaximumIncomingConnections(1);
}
void TestHelpers::StandardClientPrep(RakPeerInterface *&client)
{
client=RakPeerInterface::GetInstance();
client->Startup(1,&SocketDescriptor(),1);
}
void TestHelpers::StandardServerPrep(RakPeerInterface *&server,DataStructures::List <RakPeerInterface *> &destroyList)
{
StandardServerPrep(server);
destroyList.Push(server,_FILE_AND_LINE_);
}
void TestHelpers::StandardClientPrep(RakPeerInterface *&client,DataStructures::List <RakPeerInterface *> &destroyList)
{
StandardClientPrep(client);
destroyList.Push(client,_FILE_AND_LINE_);
}
//returns false if not connected
bool TestHelpers::WaitAndConnectTwoPeersLocally(RakPeerInterface *connector,RakPeerInterface *connectee,int millisecondsToWait)
{
SystemAddress connecteeAdd=connectee->GetInternalID();
return CommonFunctions::WaitAndConnect(connector,"127.0.0.1",connecteeAdd.port,millisecondsToWait);
}
//returns false if connect fails
bool TestHelpers::ConnectTwoPeersLocally(RakPeerInterface *connector,RakPeerInterface *connectee)
{
SystemAddress connecteeAdd=connectee->GetInternalID();
return connector->Connect("127.0.0.1",connecteeAdd.port,0,0);
}
bool TestHelpers::BroadCastTestPacket(RakPeerInterface *sender,PacketReliability rel,PacketPriority pr,int typeNum)//returns send return value
{
char str2[]="AAAAAAAAAA";
str2[0]=typeNum;
return sender->Send(str2,(int) strlen(str2)+1, pr, rel ,0, UNASSIGNED_SYSTEM_ADDRESS, true)>0;
}
bool TestHelpers::SendTestPacketDirected(RakPeerInterface *sender,char * ip,int port,PacketReliability rel,PacketPriority pr,int typeNum)//returns send return value
{
SystemAddress recAddress;
recAddress.SetBinaryAddress(ip);
recAddress.port=port;
char str2[]="AAAAAAAAAA";
str2[0]=typeNum;
return sender->Send(str2,(int) strlen(str2)+1, pr, rel ,0, recAddress, false)>0;
}
bool TestHelpers::WaitForTestPacket(RakPeerInterface *reciever,int millisecondsToWait)
{
RakTimer timer(millisecondsToWait);
Packet *packet;
while(!timer.IsExpired())
{
for (packet=reciever->Receive(); packet;reciever->DeallocatePacket(packet), packet=reciever->Receive())
{
if (packet->data[0]==ID_USER_PACKET_ENUM+1)
{
reciever->DeallocatePacket(packet);
return true;
}
}
}
return false;
}
void RecieveForXTime(RakPeerInterface *reciever,int millisecondsToWait)
{
RakTimer timer(millisecondsToWait);
Packet *packet;
while(!timer.IsExpired())
{
for (packet=reciever->Receive(); packet;reciever->DeallocatePacket(packet), packet=reciever->Receive())
{
}
}
}