Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
113
Server/NFAuthTool/NFAuthServer/NaveServer/NFUpdateManager.cpp
Normal file
113
Server/NFAuthTool/NFAuthServer/NaveServer/NFUpdateManager.cpp
Normal file
@@ -0,0 +1,113 @@
|
||||
#include "Global.h"
|
||||
#include "NFUpdateManager.h"
|
||||
|
||||
namespace NaveServer {
|
||||
|
||||
// INT iMaxProcPacket = 0;
|
||||
// INT iProcPacket = 0; // <20><> <20><>ü<EFBFBD><C3BC> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
||||
// DWORD uProcTickCnt = 0; // <20><><EFBFBD><EFBFBD> Tick Count
|
||||
|
||||
NFUpdateManager::NFUpdateManager(VOID) : m_Head(0), m_Tail(0)
|
||||
{
|
||||
}
|
||||
|
||||
NFUpdateManager::~NFUpdateManager(VOID)
|
||||
{
|
||||
}
|
||||
|
||||
VOID NFUpdateManager::Draw()
|
||||
{
|
||||
Nave::NFSyncLock Sync(&m_Lock);
|
||||
|
||||
INT Tail = m_Tail;
|
||||
INT S = Tail-m_Head;
|
||||
if(Tail < m_Head)
|
||||
S = (MaxQueCount-m_Head)+Tail;
|
||||
|
||||
LOG_IMPORTANT((L"UpdateManager PacketCount : %d", S));
|
||||
}
|
||||
|
||||
VOID NFUpdateManager::Update()
|
||||
{
|
||||
Nave::NFSyncLock Sync(&m_Lock);
|
||||
|
||||
INT i;
|
||||
INT Tail = m_Tail;
|
||||
/*
|
||||
if(timeGetTime() - uProcTickCnt > 1000)
|
||||
{
|
||||
InterlockedExchange((LONG*)&iMaxProcPacket,iProcPacket);
|
||||
InterlockedExchange((LONG*)&iProcPacket,0);
|
||||
InterlockedExchange((LONG*)&uProcTickCnt,timeGetTime());
|
||||
}
|
||||
*/
|
||||
// <20><><EFBFBD><EFBFBD>.
|
||||
if(m_Head == Tail)
|
||||
return;
|
||||
|
||||
INT iCount = 0;
|
||||
// Tail<69><6C> <20>տ<EFBFBD> <20>ִ<EFBFBD>.
|
||||
if(Tail < m_Head)
|
||||
{
|
||||
for(i = m_Head; i < MaxQueCount; ++i)
|
||||
{
|
||||
if(m_Conn[i] == NULL)
|
||||
continue;
|
||||
|
||||
m_Conn[i]->UpdatePacket(m_Packet[i]);
|
||||
m_Conn[i] = NULL;
|
||||
iCount++;
|
||||
}
|
||||
for(i = 0; i < Tail; ++i)
|
||||
{
|
||||
if(m_Conn[i] == NULL)
|
||||
continue;
|
||||
|
||||
m_Conn[i]->UpdatePacket(m_Packet[i]);
|
||||
m_Conn[i] = NULL;
|
||||
iCount++;
|
||||
}
|
||||
}
|
||||
else // Tail<69><6C> <20>ڿ<EFBFBD><DABF>ִ<EFBFBD>.
|
||||
{
|
||||
for(i = m_Head; i < Tail; ++i)
|
||||
{
|
||||
if(m_Conn[i] == NULL)
|
||||
continue;
|
||||
|
||||
m_Conn[i]->UpdatePacket(m_Packet[i]);
|
||||
m_Conn[i] = NULL;
|
||||
iCount++;
|
||||
}
|
||||
|
||||
}
|
||||
// InterlockedExchange((LONG*)&iProcPacket,iProcPacket+iCount);
|
||||
|
||||
m_Head = Tail;
|
||||
}
|
||||
|
||||
VOID NFUpdateManager::Add(NFConnection* pUser, NaveNet::NFPacket* pPacket)
|
||||
{
|
||||
Nave::NFSyncLock Sync(&m_Lock);
|
||||
|
||||
if(!pUser)
|
||||
return;
|
||||
|
||||
INT Tail = m_Tail;
|
||||
m_Conn[Tail] = pUser;
|
||||
|
||||
if(pPacket)
|
||||
memcpy(&m_Packet[Tail], pPacket, sizeof(NaveNet::NFPacket));
|
||||
else
|
||||
m_Packet[Tail].Init();
|
||||
|
||||
if(Tail+1 >= MaxQueCount)
|
||||
m_Tail = 0;
|
||||
else
|
||||
m_Tail = Tail+1;
|
||||
|
||||
// if(m_Tail == m_Head)
|
||||
// NAVE_ERROR(("UpdateManager Overflow. (H:%d, T:%d)", m_Head, m_Tail));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user