⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbusermanager.h

📁 奇迹世界data 服务器代码,研究游戏的朋友有帮助
💻 H
字号:
#pragma once

#include <MemoryPoolFactory.h>
#include <SolarHashTable.h>
using namespace util;


class DBUser;

class DBUserManager
{
public:
	DBUserManager(void);
	~DBUserManager(void);

	VOID							Init( DWORD dwPlayerPoolSize );
	VOID							UpdatePlayer();
	VOID							Release();


	template <class ObjectOperator>
	VOID							Foreach( ObjectOperator & op )
	{
		DBUser * pUser = NULL;
		m_pUserHashTable->SetFirst();
		while( ( pUser = m_pUserHashTable->GetNext() ) != NULL )
		{
			op( pUser );
		}
	}

	VOID							DestroyUser( DWORD dwUserKey );
	VOID							DestroyUserFromCacheList( DWORD dwUserKey );
	//----------------------------------------------------------------------------------
	// 烹拌, 叼滚弊侩 窃荐
	//----------------------------------------------------------------------------------
	inline DWORD					GetNumberOfPlayers() { return m_pUserHashTable->GetDataNum();	}
	inline DWORD					GetNumberOfCachedPlayers() { return m_pCachedUserHashTable->GetDataNum();	}

public:

	DBUser *						FindUser( DWORD dwUserKey );
	DBUser *						_RemoveUser( DWORD dwUserKey );
	VOID							_AddUser( DBUser * pUser );
	VOID							_FreeUser( DBUser * pUser );
	DBUser *						_AllocUser();

	DBUser *						CreateUser_AddList( DWORD dwUserKey );
	DBUser *						FindUserFromCacheList( DWORD dwUserKey );
	VOID							MoveUserFromCacheList( DWORD dwUserKey );
	VOID							MoveUserToCacheList( DWORD dwUserKey );

	VOID							AddUserToCacheList( DBUser * pUesr );
	DBUser *						RemoveUserFromCacheList( DWORD dwUserKey );
private:

	CMemoryPoolFactory<DBUser> *	m_pUserPool;
	SolarHashTable<DBUser *> *		m_pUserHashTable;
	SolarHashTable<DBUser *> *		m_pCachedUserHashTable;
};


extern DBUserManager g_DBUserManager;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -