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

📄 servercore.h

📁 魔兽世界的私服源程序
💻 H
字号:
#ifndef _SERVERCORE_H_
#define _SERVERCORE_H_

#include "Packet.h"
#include "../ThreadComm.h"


//////////////////////////////////////////////////////////////////////////
// SERVERCORE 
WX_DECLARE_HASH_MAP( wxUint32,wxSocketBase*,wxIntegerHash,wxIntegerEqual,ConnectionHashMap );
class ServerCore : public wxEvtHandler
{


public:
	ServerCore(ThreadComm* comm)
        :mLoginServerSocket(NULL)
        ,mWorldServerSocket(NULL)
		,Comm(comm)
	{
        // init everything
        InitConfig();
        InitLoginserver();
        InitWorldserver();
		Comm->SetServer(this);
	}

	~ServerCore(void) 
	{
        // kill everything
        ShutdownWorldserver();
        ShutdownLoginserver();
        ShutdownConfig();
	}

	//////////////////////////////////////////////////////////////////////////
	// static part
//	DECLARE_SINGLETON(ServerCore);

	//////////////////////////////////////////////////////////////////////////
	// Generic Stuff
private:
	DECLARE_EVENT_TABLE()

	enum EventIDs
	{

        EVENT_LOGINSERVERSOCKET         =  2000,


        EVENT_WORLDSERVERSOCKET         =  3000,

        EVENT_WORLDCLIENTSOCKETHANDLER  =  3100,

		//EVENT_PACKETHANDLER			=  3200 defined in ThreadComm.h
	};


    //////////////////////////////////////////////////////////////////////////
    // Loginserver
public:
    void                        InitLoginserver             ();
    void                        ShutdownLoginserver         ();
    void                        LoginserverLogMessage       (wxString msg);

    wxIPV4address				mLoginServerAddress;
    wxSocketServer*				mLoginServerSocket;

    void                        LoginServerSocketHandler    (wxSocketEvent& evt);
#ifdef _WIN32
    long                        LoginServerAnnounce         (void);
#endif

    //////////////////////////////////////////////////////////////////////////
    // Worldserver
public:
    void                        InitWorldserver             ();
    void                        ShutdownWorldserver         ();
    void                        WorldserverLogMessage       (wxString msg);

    wxIPV4address				mWorldServerAddress;
    wxSocketServer*				mWorldServerSocket;

    void                        WorldServerSocketHandler    (wxSocketEvent& evt);
    void                        WorldServerClientSocketHandler(wxSocketEvent& evt);

	void						WorldServerSendPacketHandler(wxPacketsAvailable &evt);

	ConnectionHashMap			Connections;
    void                        WorldKillConnection			    (wxSocketBase*);
 
	//////////////////////////////////////////////////////////////////////////  
    // Thread Comunication object
	ThreadComm *Comm;
	//////////////////////////////////////////////////////////////////////////
	// Config
public:
    void						InitConfig					();
    void						ShutdownConfig				();
    void						ConfigLogMessage			(wxString msg);

	// /

	// /global
	wxString					mcfgTitle;	
	wxString					mcfgMotd;	

    // /net
    wxString                    mcfgExtAddress;

	// /net/worldserver
    wxUint32					mcfgWorldserverPort;

    // /net/loginserver
    wxUint32                    mcfgLoginserverPort;
    wxUint32                    mcfgRealmlistUpdate;
    wxString                    mcfgRealmlist;
};


#endif//_SERVERCORE_H_

⌨️ 快捷键说明

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