Init
This commit is contained in:
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* This file was taken from RakNet 4.082.
|
||||
* Please see licenses/RakNet license.txt for the underlying license and related copyright.
|
||||
*
|
||||
* Modified work: Copyright (c) 2016-2017, SLikeSoft UG (haftungsbeschränkt)
|
||||
*
|
||||
* This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
|
||||
* license found in the license.txt file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include "slikenet/peerinterface.h"
|
||||
#include "SQLiteServerLoggerPlugin.h"
|
||||
#include "slikenet/BitStream.h"
|
||||
#include "slikenet/sleep.h"
|
||||
|
||||
#include "slikenet/Kbhit.h"
|
||||
#include "slikenet/GetTime.h"
|
||||
#include "slikenet/PacketizedTCP.h"
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("Demonstration of SQLiteServerLoggerPlugin.\n");
|
||||
|
||||
SLNet::PacketizedTCP packetizedTCP;
|
||||
SLNet::SQLiteServerLoggerPlugin loggerPlugin;
|
||||
// printf("Enable DXT compression (y/n)? ");
|
||||
// loggerPlugin.SetEnableDXTCompression(_getche()=='y');
|
||||
loggerPlugin.SetEnableDXTCompression(true);
|
||||
loggerPlugin.SetSessionManagementMode(SLNet::SQLiteServerLoggerPlugin::CREATE_SHARED_NAMED_DB_HANDLE, true, "");
|
||||
|
||||
/*
|
||||
// printf("Enter path to DB file to create, or enter for memory.\n");
|
||||
char filePath[256];
|
||||
Gets(filePath,sizeof(filePath));
|
||||
filePath[0]=0;
|
||||
if (filePath[0]==0)
|
||||
strcpy(filePath, "C:\\EchoChamber\\logger.sqlite");
|
||||
sqlite3 *database;
|
||||
if (sqlite3_open_v2(filePath, &database, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0)!=SQLITE_OK)
|
||||
return 1;
|
||||
loggerPlugin.AddDBHandle("loggerDb", database);
|
||||
*/
|
||||
packetizedTCP.AttachPlugin(&loggerPlugin);
|
||||
packetizedTCP.Start(38123,8);
|
||||
printf("\nStarted.\n");
|
||||
bool quit=false;
|
||||
bool isProcessing=false;
|
||||
|
||||
SLNet::SQLiteServerLoggerPlugin::ProcessingStatus processingStatusNew;
|
||||
SLNet::SQLiteServerLoggerPlugin::ProcessingStatus processingStatusOld;
|
||||
memset(&processingStatusOld,0,sizeof(processingStatusOld));
|
||||
|
||||
SLNet::SystemAddress sa;
|
||||
while (quit==false || isProcessing==true)
|
||||
{
|
||||
SLNet::Packet *p;
|
||||
for (p = packetizedTCP.Receive(); p; packetizedTCP.DeallocatePacket(p), p = packetizedTCP.Receive())
|
||||
{
|
||||
;
|
||||
}
|
||||
sa = packetizedTCP.HasNewIncomingConnection();
|
||||
if (sa!= SLNet::UNASSIGNED_SYSTEM_ADDRESS)
|
||||
printf("New incoming connection from %s\n", sa.ToString(true));
|
||||
sa = packetizedTCP.HasLostConnection();
|
||||
if (sa!= SLNet::UNASSIGNED_SYSTEM_ADDRESS)
|
||||
printf("Lost connection from %s\n", sa.ToString(true));
|
||||
sa = packetizedTCP.HasFailedConnectionAttempt();
|
||||
sa = packetizedTCP.HasCompletedConnectionAttempt();
|
||||
RakSleep(0);
|
||||
|
||||
if (_kbhit())
|
||||
{
|
||||
if (_getch()=='q')
|
||||
{
|
||||
printf("Quitting as soon as threads finish.\n");
|
||||
packetizedTCP.Stop();
|
||||
quit=true;
|
||||
}
|
||||
}
|
||||
|
||||
loggerPlugin.GetProcessingStatus(&processingStatusNew);
|
||||
if (memcmp(&processingStatusNew,&processingStatusOld,sizeof(processingStatusOld))!=0)
|
||||
{
|
||||
printf("buffered=%i cpuWait=%i cpuDo=%i cpuDone=%i sqlWait=%i sqlDo=%i sqlDone=%i\n",
|
||||
processingStatusNew.packetsBuffered,
|
||||
processingStatusNew.cpuPendingProcessing,processingStatusNew.cpuNumThreadsWorking,processingStatusNew.cpuProcessedAwaitingDeallocation,
|
||||
processingStatusNew.sqlPendingProcessing,processingStatusNew.sqlNumThreadsWorking,processingStatusNew.sqlProcessedAwaitingDeallocation
|
||||
);
|
||||
memcpy(&processingStatusOld,&processingStatusNew,sizeof(processingStatusOld));
|
||||
}
|
||||
|
||||
if (processingStatusNew.cpuNumThreadsWorking==processingStatusNew.cpuPendingProcessing==processingStatusNew.cpuProcessedAwaitingDeallocation==
|
||||
processingStatusNew.packetsBuffered==processingStatusNew.sqlNumThreadsWorking==processingStatusNew.sqlPendingProcessing==processingStatusNew.sqlProcessedAwaitingDeallocation==0)
|
||||
isProcessing=false;
|
||||
else
|
||||
isProcessing=true;
|
||||
}
|
||||
|
||||
loggerPlugin.CloseAllSessions();
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
Reference in New Issue
Block a user