// NeLNS - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#ifndef NL_LOGIN_SERVICE_H
#define NL_LOGIN_SERVICE_H
// we have to include windows.h because mysql.h uses it but not include it
#ifdef NL_OS_WINDOWS
# ifndef NL_COMP_MINGW
# define NOMINMAX
# endif
# include
# include
typedef unsigned long ulong;
#endif
#include
#include "nel/misc/types_nl.h"
#include "nel/misc/debug.h"
#include "nel/misc/config_file.h"
#include "nel/misc/displayer.h"
#include "nel/misc/log.h"
#include "nel/net/service.h"
using namespace std;
using namespace NLMISC;
using namespace NLNET;
// Structures
struct CFrontEnd
{
CFrontEnd(TServiceId sid, bool patching, const std::string& patchingURI) : SId(sid), Patching(patching), PatchURI(patchingURI) {}
TServiceId SId; // Service Id of the frontend on the remote shard
bool Patching; // Is FS in patching mode
std::string PatchURI; // Patch URI
};
struct CShard
{
CShard (uint32 shardId, TServiceId sid) : ShardId(shardId), NbPlayers(0), SId(sid) {}
sint32 ShardId; // unique shard id generated by the database, used to identify a WS
uint32 NbPlayers; // number of player for *this* LS, the total number of player for a shard is in the database
TServiceId SId; // unique service id used to identify the connection when a callback happen
std::vector FrontEnds; // frontends on the shard
};
// Variables
extern CLog* Output;
extern std::vector Shards;
// Functions
sint findShardWithSId (NLNET::TServiceId sid);
sint findShard (sint32 shardId);
void displayShards ();
void displayUsers ();
sint findUser (uint32 Id);
void beep (uint freq = 400, uint nb = 2, uint beepDuration = 100, uint pauseDuration = 100);
/*
* disconnectClient is true if we need to disconnect the client on connected on the login system (during the login process)
* disconnectShard is true if we need to send a message to the shard to disconnect the client from the shard
*/
//void disconnectClient (CUser &user, bool disconnectClient, bool disconnectShard);
#endif // NL_LOGIN_SERVICE_H
/* End of login_service.h */