Merge
commit
d4ad6c774d
@ -0,0 +1,50 @@
|
||||
# - Locate EFX-Util library
|
||||
# This module defines
|
||||
# EFXUTIL_LIBRARY, the library to link against
|
||||
# EFXUTIL_FOUND, if false, do not try to link to EFX-Util
|
||||
# EFXUTIL_INCLUDE_DIR, where to find headers.
|
||||
|
||||
IF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR)
|
||||
# in cache already
|
||||
SET(EFXUTIL_FIND_QUIETLY TRUE)
|
||||
ENDIF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR)
|
||||
|
||||
|
||||
FIND_PATH(EFXUTIL_INCLUDE_DIR
|
||||
EFX-Util.h
|
||||
PATHS
|
||||
$ENV{EFXUTIL_DIR}/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/sw/include
|
||||
/opt/local/include
|
||||
/opt/csw/include
|
||||
/opt/include
|
||||
PATH_SUFFIXES AL
|
||||
)
|
||||
|
||||
FIND_LIBRARY(EFXUTIL_LIBRARY
|
||||
NAMES EFX-Util efxutil libefxutil
|
||||
PATHS
|
||||
$ENV{EFXUTIL_DIR}/lib
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
/usr/local/X11R6/lib
|
||||
/usr/X11R6/lib
|
||||
/sw/lib
|
||||
/opt/local/lib
|
||||
/opt/csw/lib
|
||||
/opt/lib
|
||||
/usr/freeware/lib64
|
||||
)
|
||||
|
||||
IF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR)
|
||||
SET(EFXUTIL_FOUND "YES")
|
||||
IF(NOT EFXUTIL_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found EFX-Util: ${EFXUTIL_LIBRARY}")
|
||||
ENDIF(NOT EFXUTIL_FIND_QUIETLY)
|
||||
ELSE(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR)
|
||||
IF(NOT EFXUTIL_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Warning: Unable to find EFX-Util!")
|
||||
ENDIF(NOT EFXUTIL_FIND_QUIETLY)
|
||||
ENDIF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR)
|
@ -0,0 +1,51 @@
|
||||
#
|
||||
# Find the LibSquish includes and library
|
||||
#
|
||||
# This module defines
|
||||
# SQUISH_INCLUDE_DIR, where to find squish.h
|
||||
# SQUISH_LIBRARY, where to find the Squish library.
|
||||
# SQUISH_FOUND, If false, do not try to use Squish.
|
||||
|
||||
# also defined, but not for general use are
|
||||
IF(SQUISH_LIBRARY AND SQUISH_INCLUDE_DIR)
|
||||
# in cache already
|
||||
SET(SQUISH_FIND_QUIETLY TRUE)
|
||||
ENDIF(SQUISH_LIBRARY AND SQUISH_INCLUDE_DIR)
|
||||
|
||||
FIND_PATH(SQUISH_INCLUDE_DIR
|
||||
squish.h
|
||||
PATHS
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/sw/include
|
||||
/opt/local/include
|
||||
/opt/csw/include
|
||||
/opt/include
|
||||
PATH_SUFFIXES cppunit
|
||||
)
|
||||
|
||||
FIND_LIBRARY(SQUISH_LIBRARY
|
||||
squish
|
||||
PATHS
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
/usr/local/X11R6/lib
|
||||
/usr/X11R6/lib
|
||||
/sw/lib
|
||||
/opt/local/lib
|
||||
/opt/csw/lib
|
||||
/opt/lib
|
||||
/usr/freeware/lib64
|
||||
)
|
||||
|
||||
IF(SQUISH_LIBRARY AND SQUISH_INCLUDE_DIR)
|
||||
SET(SQUISH_FOUND "YES")
|
||||
IF(NOT SQUISH_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found Squish: ${SQUISH_LIBRARY}")
|
||||
ENDIF(NOT SQUISH_FIND_QUIETLY)
|
||||
ELSE(SQUISH_LIBRARY AND SQUISH_INCLUDE_DIR)
|
||||
IF(NOT SQUISH_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Warning: Unable to find Squish!")
|
||||
ENDIF(NOT SQUISH_FIND_QUIETLY)
|
||||
ENDIF(SQUISH_LIBRARY AND SQUISH_INCLUDE_DIR)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: nel-georges
|
||||
Version: @NL_VERSION@
|
||||
Description: NeL @NL_VERSION@
|
||||
Reqiures:
|
||||
Libs: -L${libdir}
|
||||
Libs.private: @LIBS@ -lc
|
||||
Cflags: -I${includedir}
|
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: nel-ligo
|
||||
Version: @NL_VERSION@
|
||||
Description: NeL @NL_VERSION@
|
||||
Reqiures:
|
||||
Libs: -L${libdir}
|
||||
Libs.private: @LIBS@ -lc
|
||||
Cflags: -I${includedir}
|
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: nel-net
|
||||
Version: @NL_VERSION@
|
||||
Description: NeL @NL_VERSION@
|
||||
Reqiures:
|
||||
Libs: -L${libdir}
|
||||
Libs.private: @LIBS@ -lc -lpthread -lrt -ldl
|
||||
Cflags: -I${includedir} -lc -lpthread -lrt -ldl
|
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: nel-pacs
|
||||
Version: @NL_VERSION@
|
||||
Description: NeL @NL_VERSION@
|
||||
Reqiures:
|
||||
Libs: -L${libdir}
|
||||
Libs.private: @LIBS@ -lc -lpthread -lrt -ldl
|
||||
Cflags: -I${includedir} -lc -lpthread -lrt -ldl
|
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: nel-sound
|
||||
Version: @NL_VERSION@
|
||||
Description: NeL @NL_VERSION@
|
||||
Reqiures:
|
||||
Libs: -L${libdir}
|
||||
Libs.private: @LIBS@ -lc -lpthread -lrt -ldl
|
||||
Cflags: -I${includedir} -lc -lpthread -lrt -ldl
|
@ -0,0 +1,458 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "welcome_service_itf.h"
|
||||
|
||||
namespace WS
|
||||
{
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
const CWelcomeServiceSkel::TMessageHandlerMap &CWelcomeServiceSkel::getMessageHandlers() const
|
||||
{
|
||||
static TMessageHandlerMap handlers;
|
||||
static bool init = false;
|
||||
|
||||
if (!init)
|
||||
{
|
||||
std::pair < TMessageHandlerMap::iterator, bool > res;
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("WU"), &CWelcomeServiceSkel::welcomeUser_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("DU"), &CWelcomeServiceSkel::disconnectUser_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
init = true;
|
||||
}
|
||||
|
||||
return handlers;
|
||||
}
|
||||
bool CWelcomeServiceSkel::fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message)
|
||||
{
|
||||
const TMessageHandlerMap &mh = getMessageHandlers();
|
||||
|
||||
TMessageHandlerMap::const_iterator it(mh.find(message.getName()));
|
||||
|
||||
if (it == mh.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TMessageHandler cmd = it->second;
|
||||
(this->*cmd)(sender, message);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void CWelcomeServiceSkel::welcomeUser_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceSkel_welcomeUser_WU);
|
||||
uint32 charId;
|
||||
nlRead(__message, serial, charId);
|
||||
std::string userName;
|
||||
nlRead(__message, serial, userName);
|
||||
NLNET::CLoginCookie cookie;
|
||||
nlRead(__message, serial, cookie);
|
||||
std::string priviledge;
|
||||
nlRead(__message, serial, priviledge);
|
||||
std::string exPriviledge;
|
||||
nlRead(__message, serial, exPriviledge);
|
||||
WS::TUserRole mode;
|
||||
nlRead(__message, serial, mode);
|
||||
uint32 instanceId;
|
||||
nlRead(__message, serial, instanceId);
|
||||
welcomeUser(sender, charId, userName, cookie, priviledge, exPriviledge, mode, instanceId);
|
||||
}
|
||||
|
||||
void CWelcomeServiceSkel::disconnectUser_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceSkel_disconnectUser_DU);
|
||||
uint32 userId;
|
||||
nlRead(__message, serial, userId);
|
||||
disconnectUser(sender, userId);
|
||||
}
|
||||
// ask the welcome service to welcome a character
|
||||
void CWelcomeServiceProxy::welcomeUser(NLNET::IModule *sender, uint32 charId, const std::string &userName, const NLNET::CLoginCookie &cookie, const std::string &priviledge, const std::string &exPriviledge, WS::TUserRole mode, uint32 instanceId)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->welcomeUser(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), charId, userName, cookie, priviledge, exPriviledge, mode, instanceId);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_welcomeUser(__message, charId, userName, cookie, priviledge, exPriviledge, mode, instanceId);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
// ask the welcome service to disconnect a user
|
||||
void CWelcomeServiceProxy::disconnectUser(NLNET::IModule *sender, uint32 userId)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->disconnectUser(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), userId);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_disconnectUser(__message, userId);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceProxy::buildMessageFor_welcomeUser(NLNET::CMessage &__message, uint32 charId, const std::string &userName, const NLNET::CLoginCookie &cookie, const std::string &priviledge, const std::string &exPriviledge, WS::TUserRole mode, uint32 instanceId)
|
||||
{
|
||||
__message.setType("WU");
|
||||
nlWrite(__message, serial, charId);
|
||||
nlWrite(__message, serial, const_cast < std::string& > (userName));
|
||||
nlWrite(__message, serial, const_cast < NLNET::CLoginCookie& > (cookie));
|
||||
nlWrite(__message, serial, const_cast < std::string& > (priviledge));
|
||||
nlWrite(__message, serial, const_cast < std::string& > (exPriviledge));
|
||||
nlWrite(__message, serial, mode);
|
||||
nlWrite(__message, serial, instanceId);
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceProxy::buildMessageFor_disconnectUser(NLNET::CMessage &__message, uint32 userId)
|
||||
{
|
||||
__message.setType("DU");
|
||||
nlWrite(__message, serial, userId);
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
const CLoginServiceSkel::TMessageHandlerMap &CLoginServiceSkel::getMessageHandlers() const
|
||||
{
|
||||
static TMessageHandlerMap handlers;
|
||||
static bool init = false;
|
||||
|
||||
if (!init)
|
||||
{
|
||||
std::pair < TMessageHandlerMap::iterator, bool > res;
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("PUL"), &CLoginServiceSkel::pendingUserLost_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
init = true;
|
||||
}
|
||||
|
||||
return handlers;
|
||||
}
|
||||
bool CLoginServiceSkel::fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message)
|
||||
{
|
||||
const TMessageHandlerMap &mh = getMessageHandlers();
|
||||
|
||||
TMessageHandlerMap::const_iterator it(mh.find(message.getName()));
|
||||
|
||||
if (it == mh.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TMessageHandler cmd = it->second;
|
||||
(this->*cmd)(sender, message);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void CLoginServiceSkel::pendingUserLost_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CLoginServiceSkel_pendingUserLost_PUL);
|
||||
NLNET::CLoginCookie cookie;
|
||||
nlRead(__message, serial, cookie);
|
||||
pendingUserLost(sender, cookie);
|
||||
}
|
||||
// An awaited user did not connect before the allowed timeout expire
|
||||
void CLoginServiceProxy::pendingUserLost(NLNET::IModule *sender, const NLNET::CLoginCookie &cookie)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->pendingUserLost(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), cookie);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_pendingUserLost(__message, cookie);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CLoginServiceProxy::buildMessageFor_pendingUserLost(NLNET::CMessage &__message, const NLNET::CLoginCookie &cookie)
|
||||
{
|
||||
__message.setType("PUL");
|
||||
nlWrite(__message, serial, const_cast < NLNET::CLoginCookie& > (cookie));
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
const CWelcomeServiceClientSkel::TMessageHandlerMap &CWelcomeServiceClientSkel::getMessageHandlers() const
|
||||
{
|
||||
static TMessageHandlerMap handlers;
|
||||
static bool init = false;
|
||||
|
||||
if (!init)
|
||||
{
|
||||
std::pair < TMessageHandlerMap::iterator, bool > res;
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("RWS"), &CWelcomeServiceClientSkel::registerWS_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("RWSOS"), &CWelcomeServiceClientSkel::reportWSOpenState_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("WUR"), &CWelcomeServiceClientSkel::welcomeUserResult_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
res = handlers.insert(std::make_pair(std::string("UCP"), &CWelcomeServiceClientSkel::updateConnectedPlayerCount_skel));
|
||||
// if this assert, you have a doubly message name in your interface definition !
|
||||
nlassert(res.second);
|
||||
|
||||
init = true;
|
||||
}
|
||||
|
||||
return handlers;
|
||||
}
|
||||
bool CWelcomeServiceClientSkel::fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message)
|
||||
{
|
||||
const TMessageHandlerMap &mh = getMessageHandlers();
|
||||
|
||||
TMessageHandlerMap::const_iterator it(mh.find(message.getName()));
|
||||
|
||||
if (it == mh.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TMessageHandler cmd = it->second;
|
||||
(this->*cmd)(sender, message);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void CWelcomeServiceClientSkel::registerWS_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceClientSkel_registerWS_RWS);
|
||||
uint32 shardId;
|
||||
nlRead(__message, serial, shardId);
|
||||
uint32 fixedSessionId;
|
||||
nlRead(__message, serial, fixedSessionId);
|
||||
bool isOnline;
|
||||
nlRead(__message, serial, isOnline);
|
||||
registerWS(sender, shardId, fixedSessionId, isOnline);
|
||||
}
|
||||
|
||||
void CWelcomeServiceClientSkel::reportWSOpenState_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceClientSkel_reportWSOpenState_RWSOS);
|
||||
bool isOnline;
|
||||
nlRead(__message, serial, isOnline);
|
||||
reportWSOpenState(sender, isOnline);
|
||||
}
|
||||
|
||||
void CWelcomeServiceClientSkel::welcomeUserResult_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceClientSkel_welcomeUserResult_WUR);
|
||||
uint32 userId;
|
||||
nlRead(__message, serial, userId);
|
||||
bool ok;
|
||||
nlRead(__message, serial, ok);
|
||||
std::string shardAddr;
|
||||
nlRead(__message, serial, shardAddr);
|
||||
std::string errorMsg;
|
||||
nlRead(__message, serial, errorMsg);
|
||||
welcomeUserResult(sender, userId, ok, shardAddr, errorMsg);
|
||||
}
|
||||
|
||||
void CWelcomeServiceClientSkel::updateConnectedPlayerCount_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message)
|
||||
{
|
||||
H_AUTO(CWelcomeServiceClientSkel_updateConnectedPlayerCount_UCP);
|
||||
uint32 nbOnlinePlayers;
|
||||
nlRead(__message, serial, nbOnlinePlayers);
|
||||
uint32 nbPendingPlayers;
|
||||
nlRead(__message, serial, nbPendingPlayers);
|
||||
updateConnectedPlayerCount(sender, nbOnlinePlayers, nbPendingPlayers);
|
||||
}
|
||||
// Register the welcome service in the ring session manager
|
||||
// The provided sessionId will be non-zero only for a shard with a fixed sessionId
|
||||
void CWelcomeServiceClientProxy::registerWS(NLNET::IModule *sender, uint32 shardId, uint32 fixedSessionId, bool isOnline)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->registerWS(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), shardId, fixedSessionId, isOnline);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_registerWS(__message, shardId, fixedSessionId, isOnline);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
// WS report it's current open state
|
||||
void CWelcomeServiceClientProxy::reportWSOpenState(NLNET::IModule *sender, bool isOnline)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->reportWSOpenState(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), isOnline);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_reportWSOpenState(__message, isOnline);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
// return for welcome user
|
||||
void CWelcomeServiceClientProxy::welcomeUserResult(NLNET::IModule *sender, uint32 userId, bool ok, const std::string &shardAddr, const std::string &errorMsg)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->welcomeUserResult(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), userId, ok, shardAddr, errorMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_welcomeUserResult(__message, userId, ok, shardAddr, errorMsg);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
// transmits the current player counts
|
||||
void CWelcomeServiceClientProxy::updateConnectedPlayerCount(NLNET::IModule *sender, uint32 nbOnlinePlayers, uint32 nbPendingPlayers)
|
||||
{
|
||||
if (_LocalModuleSkel && _LocalModule->isImmediateDispatchingSupported())
|
||||
{
|
||||
// immediate local synchronous dispatching
|
||||
_LocalModuleSkel->updateConnectedPlayerCount(_ModuleProxy->getModuleGateway()->getPluggedModuleProxy(sender), nbOnlinePlayers, nbPendingPlayers);
|
||||
}
|
||||
else
|
||||
{
|
||||
// send the message for remote dispatching and execution or local queing
|
||||
NLNET::CMessage __message;
|
||||
|
||||
buildMessageFor_updateConnectedPlayerCount(__message, nbOnlinePlayers, nbPendingPlayers);
|
||||
|
||||
_ModuleProxy->sendModuleMessage(sender, __message);
|
||||
}
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceClientProxy::buildMessageFor_registerWS(NLNET::CMessage &__message, uint32 shardId, uint32 fixedSessionId, bool isOnline)
|
||||
{
|
||||
__message.setType("RWS");
|
||||
nlWrite(__message, serial, shardId);
|
||||
nlWrite(__message, serial, fixedSessionId);
|
||||
nlWrite(__message, serial, isOnline);
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceClientProxy::buildMessageFor_reportWSOpenState(NLNET::CMessage &__message, bool isOnline)
|
||||
{
|
||||
__message.setType("RWSOS");
|
||||
nlWrite(__message, serial, isOnline);
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceClientProxy::buildMessageFor_welcomeUserResult(NLNET::CMessage &__message, uint32 userId, bool ok, const std::string &shardAddr, const std::string &errorMsg)
|
||||
{
|
||||
__message.setType("WUR");
|
||||
nlWrite(__message, serial, userId);
|
||||
nlWrite(__message, serial, ok);
|
||||
nlWrite(__message, serial, const_cast < std::string& > (shardAddr));
|
||||
nlWrite(__message, serial, const_cast < std::string& > (errorMsg));
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
const NLNET::CMessage &CWelcomeServiceClientProxy::buildMessageFor_updateConnectedPlayerCount(NLNET::CMessage &__message, uint32 nbOnlinePlayers, uint32 nbPendingPlayers)
|
||||
{
|
||||
__message.setType("UCP");
|
||||
nlWrite(__message, serial, nbOnlinePlayers);
|
||||
nlWrite(__message, serial, nbPendingPlayers);
|
||||
|
||||
|
||||
return __message;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,541 @@
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef WELCOME_SERVICE_ITF
|
||||
#define WELCOME_SERVICE_ITF
|
||||
#include "nel/misc/types_nl.h"
|
||||
#ifdef NL_COMP_VC8
|
||||
#include <memory>
|
||||
#endif
|
||||
#include "nel/misc/hierarchical_timer.h"
|
||||
#include "nel/misc/string_conversion.h"
|
||||
#include "nel/net/message.h"
|
||||
#include "nel/net/module.h"
|
||||
#include "nel/net/module_builder_parts.h"
|
||||
#include "nel/net/module_message.h"
|
||||
#include "nel/net/module_gateway.h"
|
||||
|
||||
#include "nel/net/login_cookie.h"
|
||||
|
||||
namespace WS
|
||||
{
|
||||
|
||||
|
||||
|
||||
struct TUserRole
|
||||
{
|
||||
enum TValues
|
||||
{
|
||||
ur_player,
|
||||
ur_editor,
|
||||
ur_animator,
|
||||
/// the highest valid value in the enum
|
||||
last_enum_item = ur_animator,
|
||||
/// a value equal to the last enum item +1
|
||||
end_of_enum,
|
||||
|
||||
invalid_val,
|
||||
|
||||
/// Number of enumerated values
|
||||
nb_enum_items = 3
|
||||
};
|
||||
|
||||
/// Index table to convert enum value to linear index table
|
||||
const std::map<TValues, uint32> &getIndexTable() const
|
||||
{
|
||||
static std::map<TValues, uint32> indexTable;
|
||||
static bool init = false;
|
||||
if (!init)
|
||||
{
|
||||
// fill the index table
|
||||
indexTable.insert(std::make_pair(ur_player, 0));
|
||||
indexTable.insert(std::make_pair(ur_editor, 1));
|
||||
indexTable.insert(std::make_pair(ur_animator, 2));
|
||||
|
||||
init = true;
|
||||
}
|
||||
|
||||
return indexTable;
|
||||
}
|
||||
|
||||
|
||||
static const NLMISC::CStringConversion<TValues> &getConversionTable()
|
||||
{
|
||||
NL_BEGIN_STRING_CONVERSION_TABLE(TValues)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(ur_player)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(ur_editor)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(ur_animator)
|
||||
NL_STRING_CONVERSION_TABLE_ENTRY(invalid_val)
|
||||
};
|
||||
static NLMISC::CStringConversion<TValues>
|
||||
conversionTable(TValues_nl_string_conversion_table, sizeof(TValues_nl_string_conversion_table)
|
||||
/ sizeof(TValues_nl_string_conversion_table[0]), invalid_val);
|
||||
|
||||
return conversionTable;
|
||||
}
|
||||
|
||||
TValues _Value;
|
||||
|
||||
public:
|
||||
TUserRole()
|
||||
: _Value(invalid_val)
|
||||
{
|
||||
}
|
||||
TUserRole(TValues value)
|
||||
: _Value(value)
|
||||
{
|
||||
}
|
||||
|
||||
TUserRole(const std::string &str)
|
||||
{
|
||||
_Value = getConversionTable().fromString(str);
|
||||
}
|
||||
|
||||
void serial(NLMISC::IStream &s)
|
||||
{
|
||||
s.serialEnum(_Value);
|
||||
}
|
||||
|
||||
bool operator == (const TUserRole &other) const
|
||||
{
|
||||
return _Value == other._Value;
|
||||
}
|
||||
bool operator != (const TUserRole &other) const
|
||||
{
|
||||
return ! (_Value == other._Value);
|
||||
}
|
||||
bool operator < (const TUserRole &other) const
|
||||
{
|
||||
return _Value < other._Value;
|
||||
}
|
||||
|
||||
bool operator <= (const TUserRole &other) const
|
||||
{
|
||||
return _Value <= other._Value;
|
||||
}
|
||||
|
||||
bool operator > (const TUserRole &other) const
|
||||
{
|
||||
return !(_Value <= other._Value);
|
||||
}
|
||||
bool operator >= (const TUserRole &other) const
|
||||
{
|
||||
return !(_Value < other._Value);
|
||||
}
|
||||
|
||||
const std::string &toString() const
|
||||
{
|
||||
return getConversionTable().toString(_Value);
|
||||
}
|
||||
static const std::string &toString(TValues value)
|
||||
{
|
||||
return getConversionTable().toString(value);
|
||||
}
|
||||
|
||||
TValues getValue() const
|
||||
{
|
||||
return _Value;
|
||||
}
|
||||
|
||||
// return true if the actual value of the enum is valid, otherwise false
|
||||
bool isValid()
|
||||
{
|
||||
if (_Value == invalid_val)
|
||||
return false;
|
||||
|
||||
// not invalid, check other enum value
|
||||
return getConversionTable().isValid(_Value);
|
||||
}
|
||||
|
||||
|
||||
uint32 asIndex()
|
||||
{
|
||||
std::map<TValues, uint32>::const_iterator it(getIndexTable().find(_Value));
|
||||
nlassert(it != getIndexTable().end());
|
||||
return it->second;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CWelcomeServiceSkel
|
||||
{
|
||||
public:
|
||||
/// the interceptor type
|
||||
typedef NLNET::CInterceptorForwarder < CWelcomeServiceSkel> TInterceptor;
|
||||
protected:
|
||||
CWelcomeServiceSkel()
|
||||
{
|
||||
// do early run time check for message table
|
||||
getMessageHandlers();
|
||||
}
|
||||
virtual ~CWelcomeServiceSkel()
|
||||
{
|
||||
}
|
||||
|
||||
void init(NLNET::IModule *module)
|
||||
{
|
||||
_Interceptor.init(this, module);
|
||||
}
|
||||
|
||||
// unused interceptors
|
||||
std::string fwdBuildModuleManifest() const { return std::string(); }
|
||||
void fwdOnModuleUp(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleDown(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleSecurityChange(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
|
||||
// process module message interceptor
|
||||
bool fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
private:
|
||||
|
||||
typedef void (CWelcomeServiceSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
|
||||
|
||||
const TMessageHandlerMap &getMessageHandlers() const;
|
||||
|
||||
|
||||
void welcomeUser_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
void disconnectUser_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
// declare one interceptor member of the skeleton
|
||||
TInterceptor _Interceptor;
|
||||
|
||||
// declare the interceptor forwarder as friend of this class
|
||||
friend class NLNET::CInterceptorForwarder < CWelcomeServiceSkel>;
|
||||
public:
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
// ask the welcome service to welcome a character
|
||||
virtual void welcomeUser(NLNET::IModuleProxy *sender, uint32 charId, const std::string &userName, const NLNET::CLoginCookie &cookie, const std::string &priviledge, const std::string &exPriviledge, WS::TUserRole mode, uint32 instanceId) =0;
|
||||
// ask the welcome service to disconnect a user
|
||||
virtual void disconnectUser(NLNET::IModuleProxy *sender, uint32 userId) =0;
|
||||
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CWelcomeServiceProxy
|
||||
{
|
||||
/// Smart pointer on the module proxy
|
||||
NLNET::TModuleProxyPtr _ModuleProxy;
|
||||
|
||||
// Pointer on the local module that implement the interface (if the proxy is for a local module)
|
||||
NLNET::TModulePtr _LocalModule;
|
||||
// Direct pointer on the server implementation interface for collocated module
|
||||
CWelcomeServiceSkel *_LocalModuleSkel;
|
||||
|
||||
|
||||
public:
|
||||
CWelcomeServiceProxy(NLNET::IModuleProxy *proxy)
|
||||
{
|
||||
nlassert(proxy->getModuleClassName() == "WelcomeService");
|
||||
_ModuleProxy = proxy;
|
||||
|
||||
// initialize collocated servant interface
|
||||
if (proxy->getModuleDistance() == 0)
|
||||
{
|
||||
_LocalModule = proxy->getLocalModule();
|
||||
nlassert(_LocalModule != NULL);
|
||||
CWelcomeServiceSkel::TInterceptor *interceptor = NULL;
|
||||
interceptor = static_cast < NLNET::CModuleBase* >(_LocalModule.getPtr())->getInterceptor(interceptor);
|
||||
nlassert(interceptor != NULL);
|
||||
|
||||
_LocalModuleSkel = interceptor->getParent();
|
||||
nlassert(_LocalModuleSkel != NULL);
|
||||
}
|
||||
else
|
||||
_LocalModuleSkel = 0;
|
||||
|
||||
}
|
||||
virtual ~CWelcomeServiceProxy()
|
||||
{
|
||||
}
|
||||
|
||||
NLNET::IModuleProxy *getModuleProxy()
|
||||
{
|
||||
return _ModuleProxy;
|
||||
}
|
||||
|
||||
// ask the welcome service to welcome a character
|
||||
void welcomeUser(NLNET::IModule *sender, uint32 charId, const std::string &userName, const NLNET::CLoginCookie &cookie, const std::string &priviledge, const std::string &exPriviledge, WS::TUserRole mode, uint32 instanceId);
|
||||
// ask the welcome service to disconnect a user
|
||||
void disconnectUser(NLNET::IModule *sender, uint32 userId);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_welcomeUser(NLNET::CMessage &__message, uint32 charId, const std::string &userName, const NLNET::CLoginCookie &cookie, const std::string &priviledge, const std::string &exPriviledge, WS::TUserRole mode, uint32 instanceId);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_disconnectUser(NLNET::CMessage &__message, uint32 userId);
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CLoginServiceSkel
|
||||
{
|
||||
public:
|
||||
/// the interceptor type
|
||||
typedef NLNET::CInterceptorForwarder < CLoginServiceSkel> TInterceptor;
|
||||
protected:
|
||||
CLoginServiceSkel()
|
||||
{
|
||||
// do early run time check for message table
|
||||
getMessageHandlers();
|
||||
}
|
||||
virtual ~CLoginServiceSkel()
|
||||
{
|
||||
}
|
||||
|
||||
void init(NLNET::IModule *module)
|
||||
{
|
||||
_Interceptor.init(this, module);
|
||||
}
|
||||
|
||||
// unused interceptors
|
||||
std::string fwdBuildModuleManifest() const { return std::string(); }
|
||||
void fwdOnModuleUp(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleDown(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleSecurityChange(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
|
||||
// process module message interceptor
|
||||
bool fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
private:
|
||||
|
||||
typedef void (CLoginServiceSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
|
||||
|
||||
const TMessageHandlerMap &getMessageHandlers() const;
|
||||
|
||||
|
||||
void pendingUserLost_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
// declare one interceptor member of the skeleton
|
||||
TInterceptor _Interceptor;
|
||||
|
||||
// declare the interceptor forwarder as friend of this class
|
||||
friend class NLNET::CInterceptorForwarder < CLoginServiceSkel>;
|
||||
public:
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
// An awaited user did not connect before the allowed timeout expire
|
||||
virtual void pendingUserLost(NLNET::IModuleProxy *sender, const NLNET::CLoginCookie &cookie) =0;
|
||||
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CLoginServiceProxy
|
||||
{
|
||||
/// Smart pointer on the module proxy
|
||||
NLNET::TModuleProxyPtr _ModuleProxy;
|
||||
|
||||
// Pointer on the local module that implement the interface (if the proxy is for a local module)
|
||||
NLNET::TModulePtr _LocalModule;
|
||||
// Direct pointer on the server implementation interface for collocated module
|
||||
CLoginServiceSkel *_LocalModuleSkel;
|
||||
|
||||
|
||||
public:
|
||||
CLoginServiceProxy(NLNET::IModuleProxy *proxy)
|
||||
{
|
||||
|
||||
_ModuleProxy = proxy;
|
||||
|
||||
// initialize collocated servant interface
|
||||
if (proxy->getModuleDistance() == 0)
|
||||
{
|
||||
_LocalModule = proxy->getLocalModule();
|
||||
nlassert(_LocalModule != NULL);
|
||||
CLoginServiceSkel::TInterceptor *interceptor = NULL;
|
||||
interceptor = static_cast < NLNET::CModuleBase* >(_LocalModule.getPtr())->getInterceptor(interceptor);
|
||||
nlassert(interceptor != NULL);
|
||||
|
||||
_LocalModuleSkel = interceptor->getParent();
|
||||
nlassert(_LocalModuleSkel != NULL);
|
||||
}
|
||||
else
|
||||
_LocalModuleSkel = 0;
|
||||
|
||||
}
|
||||
virtual ~CLoginServiceProxy()
|
||||
{
|
||||
}
|
||||
|
||||
NLNET::IModuleProxy *getModuleProxy()
|
||||
{
|
||||
return _ModuleProxy;
|
||||
}
|
||||
|
||||
// An awaited user did not connect before the allowed timeout expire
|
||||
void pendingUserLost(NLNET::IModule *sender, const NLNET::CLoginCookie &cookie);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_pendingUserLost(NLNET::CMessage &__message, const NLNET::CLoginCookie &cookie);
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CWelcomeServiceClientSkel
|
||||
{
|
||||
public:
|
||||
/// the interceptor type
|
||||
typedef NLNET::CInterceptorForwarder < CWelcomeServiceClientSkel> TInterceptor;
|
||||
protected:
|
||||
CWelcomeServiceClientSkel()
|
||||
{
|
||||
// do early run time check for message table
|
||||
getMessageHandlers();
|
||||
}
|
||||
virtual ~CWelcomeServiceClientSkel()
|
||||
{
|
||||
}
|
||||
|
||||
void init(NLNET::IModule *module)
|
||||
{
|
||||
_Interceptor.init(this, module);
|
||||
}
|
||||
|
||||
// unused interceptors
|
||||
std::string fwdBuildModuleManifest() const { return std::string(); }
|
||||
void fwdOnModuleUp(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleDown(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
void fwdOnModuleSecurityChange(NLNET::IModuleProxy * /* moduleProxy */) {}
|
||||
|
||||
// process module message interceptor
|
||||
bool fwdOnProcessModuleMessage(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
private:
|
||||
|
||||
typedef void (CWelcomeServiceClientSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
|
||||
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
|
||||
|
||||
const TMessageHandlerMap &getMessageHandlers() const;
|
||||
|
||||
|
||||
void registerWS_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
void reportWSOpenState_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
void welcomeUserResult_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
void updateConnectedPlayerCount_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
|
||||
|
||||
// declare one interceptor member of the skeleton
|
||||
TInterceptor _Interceptor;
|
||||
|
||||
// declare the interceptor forwarder as friend of this class
|
||||
friend class NLNET::CInterceptorForwarder < CWelcomeServiceClientSkel>;
|
||||
public:
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
// Register the welcome service in the ring session manager
|
||||
// The provided sessionId will be non-zero only for a shard with a fixed sessionId
|
||||
virtual void registerWS(NLNET::IModuleProxy *sender, uint32 shardId, uint32 fixedSessionId, bool isOnline) =0;
|
||||
// WS report it's current open state
|
||||
virtual void reportWSOpenState(NLNET::IModuleProxy *sender, bool isOnline) =0;
|
||||
// return for welcome user
|
||||
virtual void welcomeUserResult(NLNET::IModuleProxy *sender, uint32 userId, bool ok, const std::string &shardAddr, const std::string &errorMsg) =0;
|
||||
// transmits the current player counts
|
||||
virtual void updateConnectedPlayerCount(NLNET::IModuleProxy *sender, uint32 nbOnlinePlayers, uint32 nbPendingPlayers) =0;
|
||||
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// WARNING : this is a generated file, don't change it !
|
||||
/////////////////////////////////////////////////////////////////
|
||||
class CWelcomeServiceClientProxy
|
||||
{
|
||||
/// Smart pointer on the module proxy
|
||||
NLNET::TModuleProxyPtr _ModuleProxy;
|
||||
|
||||
// Pointer on the local module that implement the interface (if the proxy is for a local module)
|
||||
NLNET::TModulePtr _LocalModule;
|
||||
// Direct pointer on the server implementation interface for collocated module
|
||||
CWelcomeServiceClientSkel *_LocalModuleSkel;
|
||||
|
||||
|
||||
public:
|
||||
CWelcomeServiceClientProxy(NLNET::IModuleProxy *proxy)
|
||||
{
|
||||
|
||||
_ModuleProxy = proxy;
|
||||
|
||||
// initialize collocated servant interface
|
||||
if (proxy->getModuleDistance() == 0)
|
||||
{
|
||||
_LocalModule = proxy->getLocalModule();
|
||||
nlassert(_LocalModule != NULL);
|
||||
CWelcomeServiceClientSkel::TInterceptor *interceptor = NULL;
|
||||
interceptor = static_cast < NLNET::CModuleBase* >(_LocalModule.getPtr())->getInterceptor(interceptor);
|
||||
nlassert(interceptor != NULL);
|
||||
|
||||
_LocalModuleSkel = interceptor->getParent();
|
||||
nlassert(_LocalModuleSkel != NULL);
|
||||
}
|
||||
else
|
||||
_LocalModuleSkel = 0;
|
||||
|
||||
}
|
||||
virtual ~CWelcomeServiceClientProxy()
|
||||
{
|
||||
}
|
||||
|
||||
NLNET::IModuleProxy *getModuleProxy()
|
||||
{
|
||||
return _ModuleProxy;
|
||||
}
|
||||
|
||||
// Register the welcome service in the ring session manager
|
||||
// The provided sessionId will be non-zero only for a shard with a fixed sessionId
|
||||
void registerWS(NLNET::IModule *sender, uint32 shardId, uint32 fixedSessionId, bool isOnline);
|
||||
// WS report it's current open state
|
||||
void reportWSOpenState(NLNET::IModule *sender, bool isOnline);
|
||||
// return for welcome user
|
||||
void welcomeUserResult(NLNET::IModule *sender, uint32 userId, bool ok, const std::string &shardAddr, const std::string &errorMsg);
|
||||
// transmits the current player counts
|
||||
void updateConnectedPlayerCount(NLNET::IModule *sender, uint32 nbOnlinePlayers, uint32 nbPendingPlayers);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_registerWS(NLNET::CMessage &__message, uint32 shardId, uint32 fixedSessionId, bool isOnline);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_reportWSOpenState(NLNET::CMessage &__message, bool isOnline);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_welcomeUserResult(NLNET::CMessage &__message, uint32 userId, bool ok, const std::string &shardAddr, const std::string &errorMsg);
|
||||
|
||||
// Message serializer. Return the message received in reference for easier integration
|
||||
static const NLNET::CMessage &buildMessageFor_updateConnectedPlayerCount(NLNET::CMessage &__message, uint32 nbOnlinePlayers, uint32 nbPendingPlayers);
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -0,0 +1,320 @@
|
||||
// Auto generated config file
|
||||
// Use with commandline: dynamic_scenario_service -C. -L. --nobreak --writepid
|
||||
AESAliasName= "dss";
|
||||
|
||||
ASWebPort="46700";
|
||||
ASPort="46701";
|
||||
AESPort="46702";
|
||||
SUPort = 50505;
|
||||
SUGlobalPort = 50503;
|
||||
L3BSPort = "49950";
|
||||
L3SlaveBSPort = "49951";
|
||||
L3MasterLGSPort = 49992;
|
||||
LGSBSPort = 49994;
|
||||
L3LGSBSPort = 49995;
|
||||
SUHost = "localhost";
|
||||
MFSHost = "localhost";
|
||||
BSHost = "localhost:49990";
|
||||
SlaveBSHost = "";
|
||||
MasterLGSHost = "localhost";
|
||||
SlaveLGSHost = "localhost";
|
||||
LGSBSHost = "localhost";
|
||||
DBHost = "localhost";
|
||||
#define DONT_USE_LGS_SLAVE
|
||||
// Configure module gateway for layer 5 module comm
|
||||
StartCommands +=
|
||||
{
|
||||
// Create a gateway module
|
||||
"moduleManager.createModule StandardGateway gw",
|
||||
// add a layer 5 transport
|
||||
"gw.transportAdd L5Transport l5",
|
||||
// open the transport
|
||||
"gw.transportCmd l5(open)",
|
||||
|
||||
/// Create default connection with admin executor service
|
||||
// Create a gateway module
|
||||
"moduleManager.createModule StandardGateway gw_aes",
|
||||
// create the admin executor service module
|
||||
"moduleManager.createModule AdminExecutorServiceClient aes_client",
|
||||
"aes_client.plug gw_aes",
|
||||
|
||||
// create a layer 3 client to connect to aes gateway
|
||||
"gw_aes.transportAdd L3Client aes_l3c",
|
||||
"gw_aes.transportCmd aes_l3c(connect addr=localhost:"+AESPort+")",
|
||||
};
|
||||
|
||||
/// A list of vars to graph for any service
|
||||
GraphVars =
|
||||
{
|
||||
"ProcessUsedMemory", "60000", // every minute
|
||||
};
|
||||
|
||||
|
||||
/* Force default value for PDLib directory (e.g. SaveFilesDirectory...)
|
||||
* PLEASE NOTICE THAT THIS LINE MUST BE LEFT TO ""
|
||||
* Only log analyser must have the $shard parameter to find all shards root directory
|
||||
*/
|
||||
PDRootDirectory = "";
|
||||
|
||||
// Log PD updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
|
||||
PDEnableLog = 1;
|
||||
|
||||
// Log PD StringManager updates to log file (1 enabled, 0 disabled), see PDLogSaveDirectory to choose where to log
|
||||
PDEnableStringLog = 0;
|
||||
|
||||
// Number of seconds between 2 logs to file
|
||||
PDLogUpdate = 10;
|
||||
|
||||
// MySGL wrapper strict mode - controls use of asserts if SQL requests fail
|
||||
MSWStrictMode=0;
|
||||
|
||||
// This is the mapping for logical continent to physical one
|
||||
ContinentNameTranslator =
|
||||
{
|
||||
"matis_newbie", "matis",
|
||||
"zorai_newbie", "zorai",
|
||||
"terre", "terre_oubliee",
|
||||
"sources", "sources_interdites"
|
||||
};
|
||||
|
||||
NegFiltersDebug = { "ZZZZZZZZZZZ" };
|
||||
NegFiltersInfo = { "ZZZZZZZZZZZ" };
|
||||
NegFiltersWarning = { "ZZZZZZZZZZZ", "Missing log context for log" };
|
||||
//NegFiltersDebug = { "NET", "ADMIN", "MIRROR", "NC", "PATH" };
|
||||
//NegFiltersInfo = { "NET", "ADMIN", "MIRROR", "NC", "CF", "TimerManagerUpdate" };
|
||||
// NegFiltersWarning = { "CT_LRC", "AnimalSpawned" };
|
||||
|
||||
// Block the system in the tick service that provokes stalls when overloaded
|
||||
WaitForBSThreshold=0;
|
||||
|
||||
// Only produce log*.log files and not <service name>*.log
|
||||
DontLog=1;
|
||||
|
||||
IgnoredFiles = { "continent.cfg", "__read_me.txt", "bandit.html", "flora_primr.primitive" };
|
||||
|
||||
// If the update loop is too slow, a thread will produce an assertion.
|
||||
// By default, the value is set to 10 minutes.
|
||||
// Set to 0 for no assertion.
|
||||
UpdateAssertionThreadTimeout = 6000000;
|
||||
|
||||
DefaultMaxExpectedBlockSize = 200000000; // 200 M !
|
||||
DefaultMaxSentBlockSize = 200000000; // 200 M !
|
||||
|
||||
// MS Packet size limit in bytes, PER DATASET (warning: depending on the weights, limits per property may be very small)
|
||||
MaxOutBandwidth = 100000000;
|
||||
|
||||
// how to sleep between 2 network updates
|
||||
// 0 = pipe
|
||||
// 1 = usleep
|
||||
// 2 = nanosleep
|
||||
// 3 = sched_yield
|
||||
// 4 = nothing
|
||||
UseYieldMethod = 0;
|
||||
|
||||
// The privileges needed to access any ring session
|
||||
PrivilegeForSessionAccess = ":DEV:SGM:GM:SG:";
|
||||
|
||||
// The max number of ring points (aka ring access) for each ecosystem
|
||||
MaxRingPoints = "A1:D7:F7:J8:L6:R13";
|
||||
|
||||
// Level limit for newb scenarios
|
||||
FreeTrialSkillLimit=21;
|
||||
|
||||
// Level limit for newb scenarios
|
||||
DefaultInterShardExchangeLevelCap=0;
|
||||
|
||||
// Configureation for DSS
|
||||
MaxNpcs = 300;
|
||||
MaxStaticObjects = 200;
|
||||
|
||||
// the following variable must be defined but should be empty - it's presence is used to change the behaviour
|
||||
// of the packed sheet reader
|
||||
GeorgePaths = { "" };
|
||||
|
||||
// Dissable nel net verbose logging
|
||||
VerboseNETTC = 0;
|
||||
VerboseLNETL0 = 0;
|
||||
VerboseLNETL1 = 0;
|
||||
VerboseLNETL2 = 0;
|
||||
VerboseLNETL3 = 0;
|
||||
VerboseLNETL4 = 0;
|
||||
VerboseLNETL5 = 0;
|
||||
VerboseLNETL6 = 0;
|
||||
|
||||
// Dissable ryzom verbose logging
|
||||
VerboseMIRROR = 0;
|
||||
VerboseRingRPLog = 0;
|
||||
VerboseCDBGroup = 0;
|
||||
|
||||
// What to do with characters coming from another mainland shard?
|
||||
// 0: teleport to the stored session id
|
||||
// 1: let the character play anyway, but leave the stored session id unchanged
|
||||
// 2: assign the stored session id with FixedSessionId and let play
|
||||
AllowCharsFromAllSessions = 0;
|
||||
|
||||
// Use Shard Unifier or not
|
||||
DontUseSU = 0;
|
||||
|
||||
// the domain's set of useful addresses
|
||||
LSHost = SUHost;
|
||||
RSMHost = SUHost;
|
||||
|
||||
// MFS config
|
||||
WebSrvUsersDirectory = "";
|
||||
WebRootDirectory = "/home/nevrax/live/save_shard/www";
|
||||
HoFHDTDirectory = "/local/www/hof/hdt";
|
||||
|
||||
// BS Specifics --------------------------------------------------------------------------
|
||||
// BS - set to 1 if a BS is not part of a naming service group (then BS not disclosed
|
||||
// to other services by the Layer 5, i.e. the services sending requests to BS have
|
||||
// to know its/their address(es) by another mean)
|
||||
BSDontUseNS = 1;
|
||||
// BS - set the host of the naming service where the BS register
|
||||
BSNSHost = "localhost";
|
||||
UseBS = 1;
|
||||
XMLSave = 0;
|
||||
|
||||
// Where to save specific shard data (ie: player backup), relatively to SaveShardRoot
|
||||
SaveFilesDirectory = "";
|
||||
|
||||
// where to save generic shard data (ie: packed_sheet)
|
||||
WriteFilesDirectory = "r2_shard/data_shard";
|
||||
|
||||
// Will SaveFilesDirectory will be converted to a full path?
|
||||
ConvertSaveFilesDirectoryToFullPath = 0;
|
||||
|
||||
// BS - Root directory where data are backuped to
|
||||
IncrementalBackupDirectory = "../incremental_backup";
|
||||
|
||||
// IOS - Directory to store ios.string_cache file
|
||||
StringManagerCacheDirectory = "../data_shard_local";
|
||||
|
||||
// IOS - Directory to log chat into
|
||||
LogChatDirectory = "../data_shard_local";
|
||||
|
||||
// MFS - Directories
|
||||
WebRootDirectory = "../www";
|
||||
|
||||
// Root directory where data from shards are stored into
|
||||
SaveShardRoot = "../save_shard/";
|
||||
|
||||
// SU Specifics --------------------------------------------------------------------------
|
||||
// SU - set to 1 if SU didn't use a naming service
|
||||
SUDontUseNS = 1;
|
||||
// SU - host for the NS used by SU
|
||||
SUNSHost = "localhost";
|
||||
// SU - listen address of the SU service (for L5 connections)
|
||||
SUAddress = SUHost+":"+SUPort;
|
||||
// SU - nel and ring database names
|
||||
DBNelName = "nel";
|
||||
DBRingName = "ring_open";
|
||||
// Nel DB user
|
||||
DBNelUser = "open";
|
||||
// Ring DB user
|
||||
DBRingUser = "open";
|
||||
// SU - password to access to the nel database with DBNelUseruser (default is no password)
|
||||
DBNelPass = "";
|
||||
// SU - password to access to the ring database with DBRingUser (default is no password)
|
||||
DBRingPass = "";
|
||||
|
||||
// WS Specifics --------------------------------------------------------------------------
|
||||
// WS - use or not the legacy WelcomeService from nel ns (only for backward compatibility during transition to ring)
|
||||
DontUseLSService = 1;
|
||||
|
||||
// Global config --------------------------------------------------------------------------
|
||||
// set to 0 if you want to use the admin system
|
||||
DontUseAES = 1;
|
||||
|
||||
// Dissable generation / display of nldebug messages
|
||||
DissableNLDebug = 1;
|
||||
DisableNLDebug = 1;
|
||||
ShardId = 201;
|
||||
BasePort = 51400;
|
||||
SaveFilesDirectory="open_ring01/";
|
||||
NSHost = "localhost";
|
||||
// Player limits (AIS, EGS, WS, FS)
|
||||
NbPlayersLimit = 5000;
|
||||
NbGuildLimit = 15000;
|
||||
PlayerLimit = NbPlayersLimit;
|
||||
ClientLimit = 1000;
|
||||
|
||||
// Set this shard as a ring (1) or mainland (0) shard (main behavior switch)
|
||||
IsRingShard = 1;
|
||||
|
||||
// Set a mainland SessionId.
|
||||
// Live: Must be 0 for ring shards, non-zero (usually ShardId) for mainland shards
|
||||
// Dev: Can be non-zero to initially connect a client to a ring shard
|
||||
NoWSShardId = ShardId;
|
||||
FixedSessionId = 0;
|
||||
|
||||
// Mirror limits
|
||||
DatasetSizefe_temp = 600000;
|
||||
DatasetSizefame = 26000;
|
||||
|
||||
// FS Specifics --------------------------------------------------------------------------
|
||||
// Client bandwidth ratio, set to 1 for standard operation, more than one allocate more bandwidth
|
||||
BandwidthRatio = 2;
|
||||
|
||||
// EGS Specifics --------------------------------------------------------------------------
|
||||
// Entity Limits (EGS)
|
||||
NbObjectsLimit = 2000;
|
||||
NbNpcSpawnedByEGSLimit = 5000;
|
||||
NbForageSourcesLimit = 10000;
|
||||
NbToxicCloudsLimit = 5000;
|
||||
|
||||
// AIS Specifics --------------------------------------------------------------------------
|
||||
// Entity Limits (AIS)
|
||||
NbPetLimit = NbPlayersLimit*4;
|
||||
NbFaunaLimit = 50000;
|
||||
NbNpcLimit = 50000;
|
||||
NbFxLimit = 500;
|
||||
|
||||
// This is the list of continent to use with their unique instance number
|
||||
UsedContinents =
|
||||
{
|
||||
"r2_desert", "10000",
|
||||
"r2_forest", "10001",
|
||||
"r2_jungle", "10002",
|
||||
"r2_lakes", "10003",
|
||||
"r2_roots", "10004",
|
||||
};
|
||||
|
||||
// define the primitives configuration used.
|
||||
UsedPrimitives =
|
||||
{
|
||||
};
|
||||
FSListenHost = "localhost";
|
||||
#include "dynamic_scenario_service_default.cfg"
|
||||
WriteFilesDirectory="../live/service_dynamic_scenario_service/";
|
||||
DontLog = 1;
|
||||
WebSrvHost = "http://localhost:50000/";
|
||||
Mainlands = {
|
||||
"302", "Open", "(Open Developer Community)", "en",
|
||||
};
|
||||
HomeMainlandNames =
|
||||
{
|
||||
"302", "Open", "open",
|
||||
};
|
||||
RRDVarPath = "../rrd_graphs";
|
||||
NegFiltersInfo+= {"FESTATS", "FETIME", "FERECV", "FESEND: sent SYNC message to client 1", "EIT: Register EId"};
|
||||
NegFiltersWarning+= {"PIPO_SESSION1", "casino_session_matis01", "invalid damage type 10", "_log_Item_Delete",
|
||||
"_log_Item_Money", "_log_Item_Create", "_log_Item_Move", "botChatMissionAdvance> invalid index 0",
|
||||
"_MaxRange(0) < _MinRange(1)", "Can't find craft plan sheet 'unknown.unknown'"};
|
||||
DontUseAES=1;
|
||||
RingRPEnabled=0;
|
||||
DomainName = "ryzom_open";
|
||||
EnableStlAllocatorChecker = 0;
|
||||
// start commands for setting up the exchange level caps of different ryzom shards
|
||||
StartCommands += { "setShardExchangeLimit 101 250" };
|
||||
StartCommands += { "setShardExchangeLimit 102 250" };
|
||||
StartCommands += { "setShardExchangeLimit 103 250" };
|
||||
StartCommands += { "setShardExchangeLimit 104 0" };
|
||||
StartCommands += { "setShardExchangeLimit 105 0" };
|
||||
StartCommands += { "displayShardExchangeLimits" };
|
||||
StartCommands += { "EnableStlAllocatorChecker 0" };
|
||||
|
||||
Paths = {
|
||||
".",
|
||||
"../common/data_common",
|
||||
"../common/data_leveldesign",
|
||||
};
|
@ -0,0 +1,9 @@
|
||||
|
||||
DelayBeforeStartAct = 1;
|
||||
MaxNpcs = 300;
|
||||
MaxStaticObjects = 200;
|
||||
|
||||
StartCommands +=
|
||||
{
|
||||
"unifiedNetwork.addService ShardUnifier ( address="+SUAddress+" sendId external autoRetry )",
|
||||
};
|
@ -0,0 +1,24 @@
|
||||
FILE(GLOB SRC *.cpp *.h)
|
||||
|
||||
ADD_EXECUTABLE(gpm_service ${SRC})
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/server/src ${LIBXML2_INCLUDE_DIR} ${MYSQL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ${NEL_INCLUDE_DIR})
|
||||
TARGET_LINK_LIBRARIES(gpm_service admin_modules
|
||||
game_share
|
||||
server_share
|
||||
${PLATFORM_LINKFLAGS}
|
||||
${LIBXML2_LIBRARIES}
|
||||
${NELMISC_LIBRARY}
|
||||
${NELNET_LIBRARY}
|
||||
${NELPACS_LIBRARY}
|
||||
${NELGEORGES_LIBRARY}
|
||||
${NELLIGO_LIBRARY})
|
||||
IF(WIN32)
|
||||
SET_TARGET_PROPERTIES(gpm_service PROPERTIES
|
||||
LINK_FLAGS "/NODEFAULTLIB:libcmt /SUBSYSTEM:WINDOWS"
|
||||
PROJECT_LABEL "Services: Global Position Manager Service (GPMS)")
|
||||
ENDIF(WIN32)
|
||||
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
|
||||
|
||||
INSTALL(TARGETS gpm_service RUNTIME DESTINATION sbin COMPONENT services)
|
||||
|
@ -0,0 +1,35 @@
|
||||
FILE(GLOB SRC *.cpp *.h)
|
||||
|
||||
LIST(REMOVE_ITEM SRC ${CMAKE_CURRENT_SOURCE_DIR}/bot_chat_manager.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/bot_chat_manager.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_chat_log.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_chat_log.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_chat_log_inline.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_pd.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_pd.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ios_pd_inline.h)
|
||||
|
||||
ADD_EXECUTABLE(ios_service ${SRC})
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/server/src ${LIBXML2_INCLUDE_DIR} ${MYSQL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ${NEL_INCLUDE_DIR})
|
||||
TARGET_LINK_LIBRARIES(ios_service admin_modules
|
||||
pd_lib
|
||||
game_share
|
||||
server_share
|
||||
${PLATFORM_LINKFLAGS}
|
||||
${LIBXML2_LIBRARIES}
|
||||
${NELMISC_LIBRARY}
|
||||
${NELNET_LIBRARY}
|
||||
${NELPACS_LIBRARY}
|
||||
${NELGEORGES_LIBRARY}
|
||||
${NELLIGO_LIBRARY})
|
||||
IF(WIN32)
|
||||
SET_TARGET_PROPERTIES(ios_service PROPERTIES
|
||||
LINK_FLAGS "/NODEFAULTLIB:libcmt /SUBSYSTEM:WINDOWS"
|
||||
PROJECT_LABEL "Services: Input Ouput Service (IOS)")
|
||||
ENDIF(WIN32)
|
||||
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
|
||||
|
||||
INSTALL(TARGETS ios_service RUNTIME DESTINATION sbin COMPONENT services)
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
FILE(GLOB SRC *.cpp *.h)
|
||||
|
||||
LIST(REMOVE_ITEM SRC ${CMAKE_CURRENT_SOURCE_DIR}/Backup\ 1\ of\ file_repository.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rr_module_itf.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rr_module_itf.h)
|
||||
|
||||
ADD_EXECUTABLE(patchman_service ${SRC})
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/server/src ${LIBXML2_INCLUDE_DIR} ${MYSQL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} ${NEL_INCLUDE_DIR})
|
||||
TARGET_LINK_LIBRARIES(patchman_service admin_modules
|
||||
game_share
|
||||
server_share
|
||||
${PLATFORM_LINKFLAGS}
|
||||
${LIBXML2_LIBRARIES}
|
||||
${MYSQL_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${NELMISC_LIBRARY}
|
||||
${NELNET_LIBRARY}
|
||||
${NELPACS_LIBRARY}
|
||||
${NELGEORGES_LIBRARY}
|
||||
${NELLIGO_LIBRARY})
|
||||
IF(WIN32)
|
||||
SET_TARGET_PROPERTIES(patchman_service PROPERTIES
|
||||
LINK_FLAGS "/NODEFAULTLIB:libcmt /SUBSYSTEM:WINDOWS"
|
||||
PROJECT_LABEL "Services: Patch Manager (PMS)")
|
||||
ENDIF(WIN32)
|
||||
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
|
||||
|
||||
INSTALL(TARGETS patchman_service RUNTIME DESTINATION sbin COMPONENT services)
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue