khanat-opennel-code/code/ryzom/server/src/admin_modules/admin_modules_itf.h

2304 lines
59 KiB
C++

// 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/>.
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
#ifndef ADMIN_MODULES_ITF
#define ADMIN_MODULES_ITF
#include "nel/misc/types_nl.h"
#include <memory>
#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 "game_share/callback_adaptor.h"
#include "nel/misc/time_nl.h"
namespace ADMIN
{
class TGraphData;
class TGraphDatas;
class THighRezData;
class THighRezDatas;
class TServiceStatus;
// This is the interface used by PHP to call methods
// on the Admin service module
class CAdminServiceWebItf
{
protected:
/// the callback server adaptor
std::auto_ptr<ICallbackServerAdaptor> _CallbackServer;
void getCallbakArray(NLNET::TCallbackItem *&arrayPtr, uint32 &arraySize)
{
static NLNET::TCallbackItem callbackArray[] =
{
{ "GCMD", CAdminServiceWebItf::cb_globalCmd },
{ "CCMD", CAdminServiceWebItf::cb_controlCmd },
{ "SCMD", CAdminServiceWebItf::cb_serviceCmd },
{ "GSO", CAdminServiceWebItf::cb_getShardOrders },
{ "GS", CAdminServiceWebItf::cb_getStates },
{ "GHRGI", CAdminServiceWebItf::cb_getHighRezGraphInfo },
{ "GHRG", CAdminServiceWebItf::cb_getHighRezGraph },
};
arrayPtr = callbackArray;
arraySize = sizeofarray(callbackArray);
}
static void _cbConnection(NLNET::TSockId from, void *arg)
{
H_AUTO(CAdminServiceWeb__cbConnection);
CAdminServiceWebItf *_this = reinterpret_cast<CAdminServiceWebItf *>(arg);
_this->on_CAdminServiceWeb_Connection(from);
}
static void _cbDisconnection(NLNET::TSockId from, void *arg)
{
H_AUTO(CAdminServiceWeb__cbDisconnection);
CAdminServiceWebItf *_this = reinterpret_cast<CAdminServiceWebItf *>(arg);
_this->on_CAdminServiceWeb_Disconnection(from);
}
public:
/** Constructor, if you specify a replacement adaptor, then the object
* become owner of the adaptor (and it will be released with the
* interface).
*/
CAdminServiceWebItf(ICallbackServerAdaptor *replacementAdaptor = NULL)
{
if (replacementAdaptor == NULL)
{
// use default callback server
_CallbackServer = std::auto_ptr<ICallbackServerAdaptor>(new CNelCallbackServerAdaptor(this));
}
else
{
// use the replacement one
_CallbackServer = std::auto_ptr<ICallbackServerAdaptor>(replacementAdaptor);
}
}
virtual ~CAdminServiceWebItf()
{
}
/// Open the interface socket in the specified port
void openItf(uint16 port)
{
NLNET::TCallbackItem *arrayPtr;
uint32 arraySize;
getCallbakArray(arrayPtr, arraySize);
_CallbackServer->addCallbackArray(arrayPtr, arraySize);
_CallbackServer->setConnectionCallback (_cbConnection, this);
_CallbackServer->setDisconnectionCallback (_cbDisconnection, this);
_CallbackServer->init(port);
}
/** Must be called evenly, update the network subclass to receive message
* and dispatch method invokation.
*/
void update()
{
H_AUTO(CAdminServiceWeb_update);
try
{
_CallbackServer->update();
}
catch (...)
{
nlwarning("CAdminServiceWeb : Exception launch in callback server update");
}
}
void commandResult(NLNET::TSockId dest, const std::string &serviceAlias, const std::string &result)
{
H_AUTO(commandResult_commandResult);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::commandResult called");
#endif
NLNET::CMessage message("CMDR");
nlWrite(message, serial, const_cast < std::string& > (serviceAlias));
nlWrite(message, serial, const_cast < std::string& > (result));
_CallbackServer->send(message, dest);
}
static void cb_globalCmd (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(globalCmd_on_globalCmd);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_globalCmd received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string command;
nlRead(message, serial, command);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_globalCmd : calling on_globalCmd");
#endif
callback->on_globalCmd(from, command);
}
static void cb_controlCmd (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(controlCmd_on_controlCmd);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_controlCmd received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string serviceAlias;
std::string command;
nlRead(message, serial, serviceAlias);
nlRead(message, serial, command);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_controlCmd : calling on_controlCmd");
#endif
callback->on_controlCmd(from, serviceAlias, command);
}
static void cb_serviceCmd (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(serviceCmd_on_serviceCmd);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_serviceCmd received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string serviceAlias;
std::string command;
nlRead(message, serial, serviceAlias);
nlRead(message, serial, command);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_serviceCmd : calling on_serviceCmd");
#endif
callback->on_serviceCmd(from, serviceAlias, command);
}
static void cb_getShardOrders (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(getShardOrders_on_getShardOrders);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getShardOrders received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getShardOrders : calling on_getShardOrders");
#endif
std::vector<std::string> retValue;
retValue = callback->on_getShardOrders(from);
NLNET::CMessage retMsg("R_GSO");
nlWrite(retMsg, serialCont, retValue);
callback->_CallbackServer->send(retMsg, from);
}
static void cb_getStates (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(getStates_on_getStates);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getStates received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getStates : calling on_getStates");
#endif
std::vector<std::string> retValue;
retValue = callback->on_getStates(from);
NLNET::CMessage retMsg("R_GS");
nlWrite(retMsg, serialCont, retValue);
callback->_CallbackServer->send(retMsg, from);
}
static void cb_getHighRezGraphInfo (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(getHighRezGraphInfo_on_getHighRezGraphInfo);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getHighRezGraphInfo received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string varAddr;
nlRead(message, serial, varAddr);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getHighRezGraphInfo : calling on_getHighRezGraphInfo");
#endif
std::vector<std::string> retValue;
retValue = callback->on_getHighRezGraphInfo(from, varAddr);
NLNET::CMessage retMsg("R_GHRGI");
nlWrite(retMsg, serialCont, retValue);
callback->_CallbackServer->send(retMsg, from);
}
static void cb_getHighRezGraph (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
H_AUTO(getHighRezGraph_on_getHighRezGraph);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getHighRezGraph received from class '%s'", typeid(netbase).name());
#endif
ICallbackServerAdaptor *adaptor = static_cast< ICallbackServerAdaptor *>(netbase.getUserData());
CAdminServiceWebItf *callback = (CAdminServiceWebItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string varAddr;
uint32 startDate;
uint32 endDate;
uint32 milliStep;
nlRead(message, serial, varAddr);
nlRead(message, serial, startDate);
nlRead(message, serial, endDate);
nlRead(message, serial, milliStep);
#ifdef NL_DEBUG
nldebug("CAdminServiceWeb::cb_getHighRezGraph : calling on_getHighRezGraph");
#endif
std::vector<std::string> retValue;
retValue = callback->on_getHighRezGraph(from, varAddr, startDate, endDate, milliStep);
NLNET::CMessage retMsg("R_GHRG");
nlWrite(retMsg, serialCont, retValue);
callback->_CallbackServer->send(retMsg, from);
}
/// Connection callback : a new interface client connect
virtual void on_CAdminServiceWeb_Connection(NLNET::TSockId from) =0;
/// Disconnection callback : one of the interface client disconnect
virtual void on_CAdminServiceWeb_Disconnection(NLNET::TSockId from) =0;
// Send a command to the AS.
// This is used to issue global commands like 'as.allStart' or 'as.allStop'.
// The result is returned by the return message
// serviceCmdResult.
virtual void on_globalCmd(NLNET::TSockId from, const std::string &command) =0;
// Send a service related command to the executor
// (not to the controled service)
// The result is returned by the return message
// controlCmdResult.
virtual void on_controlCmd(NLNET::TSockId from, const std::string &serviceAlias, const std::string &command) =0;
// Send a command to a service.
// The result is returned by the return message
// serviceCmdResult.
virtual void on_serviceCmd(NLNET::TSockId from, const std::string &serviceAlias, const std::string &command) =0;
// Get the orders of each known shard.
// The return value is a vector of string, one entry by shard
virtual std::vector<std::string> on_getShardOrders(NLNET::TSockId from) =0;
// Get the last known state of all services.
// The return value is a vector of string, one entry by service
virtual std::vector<std::string> on_getStates(NLNET::TSockId from) =0;
// Get information about a high rez graph.
// The return is a string array containing
// the name of the var, the available sample
// period as two unix date (start dans end)
// and the number of samples available
// If the var is not found, an empty array is returned
virtual std::vector<std::string> on_getHighRezGraphInfo(NLNET::TSockId from, const std::string &varAddr) =0;
// Get the data for a high resolution graph.
// The return is a string array, each
// string containing 'time:milliOffset:value
// Set endDate to 0 to specify a start date relative
// to the last sample date. In this case, start date
// is interpreted as the number of second before
// the last sample.
virtual std::vector<std::string> on_getHighRezGraph(NLNET::TSockId from, const std::string &varAddr, uint32 startDate, uint32 endDate, uint32 milliStep) =0;
};
// This is the interface used by PHP to call methods
// on the Admin service module
/** This is the client side of the interface
* Derive from this class to invoke method on the callback server
*/
class CAdminServiceWebClientItf
{
protected:
/// the callback client adaptor
std::auto_ptr < ICallbackClientAdaptor > _CallbackClient;
void getCallbakArray(NLNET::TCallbackItem *&arrayPtr, uint32 &arraySize)
{
static NLNET::TCallbackItem callbackArray[] =
{
{ "CMDR", CAdminServiceWebClientItf::cb_commandResult },
};
arrayPtr = callbackArray;
arraySize = sizeofarray(callbackArray);
}
static void _cbDisconnection(NLNET::TSockId from, void *arg)
{
CAdminServiceWebClientItf *_this = reinterpret_cast<CAdminServiceWebClientItf *>(arg);
_this->on_CAdminServiceWebClient_Disconnection(from);
}
public:
/// Retreive the message name for a given callback name
static const std::string &getMessageName(const std::string &methodName)
{
static std::map<std::string, std::string> messageNames;
static bool initialized = false;
if (!initialized)
{
messageNames.insert(std::make_pair(std::string("on_commandResult"), std::string("CMDR")));
initialized = true;
}
std::map < std::string, std::string>::const_iterator it(messageNames.find(methodName));
if (it != messageNames.end())
return it->second;
static std::string emptyString;
return emptyString;
}
CAdminServiceWebClientItf(ICallbackClientAdaptor *adaptorReplacement = NULL)
{
if (adaptorReplacement == NULL)
{
// use the default Nel adaptor
_CallbackClient = std::auto_ptr < ICallbackClientAdaptor >(new CNelCallbackClientAdaptor(this));
}
else
{
// use the replacement one
_CallbackClient = std::auto_ptr < ICallbackClientAdaptor >(adaptorReplacement);
}
}
/// Connect the interface client to the callback server at the specified address and port
virtual void connectItf(NLNET::CInetAddress address)
{
NLNET::TCallbackItem *arrayPtr;
uint32 arraySize;
static bool callbackAdded = false;
if (!callbackAdded)
{
getCallbakArray(arrayPtr, arraySize);
_CallbackClient->addCallbackArray(arrayPtr, arraySize);
}
_CallbackClient->setDisconnectionCallback (_cbDisconnection, this);
_CallbackClient->connect(address);
}
/** Must be called evenly, update the network subclass to receive message
* and dispatch invokation returns.
*/
virtual void update()
{
H_AUTO(CAdminServiceWeb_update);
try
{
_CallbackClient->update();
}
catch (...)
{
nlwarning("CAdminServiceWeb : Exception launch in callback client update");
}
}
// Send a command to the AS.
// This is used to issue global commands like 'as.allStart' or 'as.allStop'.
// The result is returned by the return message
// serviceCmdResult.
void globalCmd(const std::string &command)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::globalCmd called");
#endif
NLNET::CMessage message("GCMD");
nlWrite(message, serial, const_cast < std::string& > (command));
_CallbackClient->send(message);
}
// Send a service related command to the executor
// (not to the controled service)
// The result is returned by the return message
// controlCmdResult.
void controlCmd(const std::string &serviceAlias, const std::string &command)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::controlCmd called");
#endif
NLNET::CMessage message("CCMD");
nlWrite(message, serial, const_cast < std::string& > (serviceAlias));
nlWrite(message, serial, const_cast < std::string& > (command));
_CallbackClient->send(message);
}
// Send a command to a service.
// The result is returned by the return message
// serviceCmdResult.
void serviceCmd(const std::string &serviceAlias, const std::string &command)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::serviceCmd called");
#endif
NLNET::CMessage message("SCMD");
nlWrite(message, serial, const_cast < std::string& > (serviceAlias));
nlWrite(message, serial, const_cast < std::string& > (command));
_CallbackClient->send(message);
}
// Get the orders of each known shard.
// The return value is a vector of string, one entry by shard
void getShardOrders()
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::getShardOrders called");
#endif
NLNET::CMessage message("GSO");
_CallbackClient->send(message);
}
// Get the last known state of all services.
// The return value is a vector of string, one entry by service
void getStates()
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::getStates called");
#endif
NLNET::CMessage message("GS");
_CallbackClient->send(message);
}
// Get information about a high rez graph.
// The return is a string array containing
// the name of the var, the available sample
// period as two unix date (start dans end)
// and the number of samples available
// If the var is not found, an empty array is returned
void getHighRezGraphInfo(const std::string &varAddr)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::getHighRezGraphInfo called");
#endif
NLNET::CMessage message("GHRGI");
nlWrite(message, serial, const_cast < std::string& > (varAddr));
_CallbackClient->send(message);
}
// Get the data for a high resolution graph.
// The return is a string array, each
// string containing 'time:milliOffset:value
// Set endDate to 0 to specify a start date relative
// to the last sample date. In this case, start date
// is interpreted as the number of second before
// the last sample.
void getHighRezGraph(const std::string &varAddr, uint32 startDate, uint32 endDate, uint32 milliStep)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::getHighRezGraph called");
#endif
NLNET::CMessage message("GHRG");
nlWrite(message, serial, const_cast < std::string& > (varAddr));
nlWrite(message, serial, startDate);
nlWrite(message, serial, endDate);
nlWrite(message, serial, milliStep);
_CallbackClient->send(message);
}
static void cb_commandResult (NLNET::CMessage &message, NLNET::TSockId from, NLNET::CCallbackNetBase &netbase)
{
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::cb_commandResult received from class '%s'", typeid(netbase).name());
#endif
ICallbackClientAdaptor *adaptor = static_cast< ICallbackClientAdaptor *>(netbase.getUserData());
CAdminServiceWebClientItf *callback = (CAdminServiceWebClientItf *)adaptor->getContainerClass();
if (callback == NULL)
return;
std::string serviceAlias;
std::string result;
nlRead(message, serial, serviceAlias);
nlRead(message, serial, result);
#ifdef NL_DEBUG
nldebug("CAdminServiceWebClient::cb_commandResult : calling on_commandResult");
#endif
callback->on_commandResult(from, serviceAlias, result);
}
/// Disconnection callback : the connection to the server is lost
virtual void on_CAdminServiceWebClient_Disconnection(NLNET::TSockId from) =0;
virtual void on_commandResult(NLNET::TSockId from, const std::string &serviceAlias, const std::string &result) =0;
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class TGraphData
{
protected:
//
std::string _ServiceAlias;
//
std::string _VarName;
//
uint32 _SamplePeriod;
//
double _Value;
public:
//
const std::string &getServiceAlias() const
{
return _ServiceAlias;
}
std::string &getServiceAlias()
{
return _ServiceAlias;
}
void setServiceAlias(const std::string &value)
{
_ServiceAlias = value;
}
//
const std::string &getVarName() const
{
return _VarName;
}
std::string &getVarName()
{
return _VarName;
}
void setVarName(const std::string &value)
{
_VarName = value;
}
//
uint32 getSamplePeriod() const
{
return _SamplePeriod;
}
void setSamplePeriod(uint32 value)
{
_SamplePeriod = value;
}
//
double getValue() const
{
return _Value;
}
void setValue(double value)
{
_Value = value;
}
bool operator == (const TGraphData &other) const
{
return _ServiceAlias == other._ServiceAlias
&& _VarName == other._VarName
&& _SamplePeriod == other._SamplePeriod
&& _Value == other._Value;
}
// constructor
TGraphData()
{
}
void serial(NLMISC::IStream &s)
{
s.serial(_ServiceAlias);
s.serial(_VarName);
s.serial(_SamplePeriod);
s.serial(_Value);
}
private:
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class TGraphDatas
{
protected:
//
uint32 _CurrentTime;
//
std::vector < TGraphData > _Datas;
public:
//
uint32 getCurrentTime() const
{
return _CurrentTime;
}
void setCurrentTime(uint32 value)
{
_CurrentTime = value;
}
//
const std::vector < TGraphData > &getDatas() const
{
return _Datas;
}
std::vector < TGraphData > &getDatas()
{
return _Datas;
}
void setDatas(const std::vector < TGraphData > &value)
{
_Datas = value;
}
bool operator == (const TGraphDatas &other) const
{
return _CurrentTime == other._CurrentTime
&& _Datas == other._Datas;
}
// constructor
TGraphDatas()
{
}
void serial(NLMISC::IStream &s)
{
s.serial(_CurrentTime);
s.serialCont(_Datas);
}
private:
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class THighRezData
{
protected:
//
NLMISC::TTime _SampleTick;
//
double _Value;
public:
//
NLMISC::TTime getSampleTick() const
{
return _SampleTick;
}
void setSampleTick(NLMISC::TTime value)
{
_SampleTick = value;
}
//
double getValue() const
{
return _Value;
}
void setValue(double value)
{
_Value = value;
}
bool operator == (const THighRezData &other) const
{
return _SampleTick == other._SampleTick
&& _Value == other._Value;
}
// constructor
THighRezData()
{
}
void serial(NLMISC::IStream &s)
{
s.serial(_SampleTick);
s.serial(_Value);
}
private:
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class THighRezDatas
{
protected:
//
std::string _ServiceAlias;
//
std::string _VarName;
//
uint32 _CurrentTime;
//
std::vector < THighRezData > _Datas;
public:
//
const std::string &getServiceAlias() const
{
return _ServiceAlias;
}
std::string &getServiceAlias()
{
return _ServiceAlias;
}
void setServiceAlias(const std::string &value)
{
_ServiceAlias = value;
}
//
const std::string &getVarName() const
{
return _VarName;
}
std::string &getVarName()
{
return _VarName;
}
void setVarName(const std::string &value)
{
_VarName = value;
}
//
uint32 getCurrentTime() const
{
return _CurrentTime;
}
void setCurrentTime(uint32 value)
{
_CurrentTime = value;
}
//
const std::vector < THighRezData > &getDatas() const
{
return _Datas;
}
std::vector < THighRezData > &getDatas()
{
return _Datas;
}
void setDatas(const std::vector < THighRezData > &value)
{
_Datas = value;
}
bool operator == (const THighRezDatas &other) const
{
return _ServiceAlias == other._ServiceAlias
&& _VarName == other._VarName
&& _CurrentTime == other._CurrentTime
&& _Datas == other._Datas;
}
// constructor
THighRezDatas()
{
}
void serial(NLMISC::IStream &s)
{
s.serial(_ServiceAlias);
s.serial(_VarName);
s.serial(_CurrentTime);
s.serialCont(_Datas);
}
private:
};
struct TShardOrders
{
enum TValues
{
so_autostart_on,
so_autostart_off,
/// the highest valid value in the enum
last_enum_item = so_autostart_off,
/// a value equal to the last enum item +1
end_of_enum,
invalid_val,
/// Number of enumerated values
nb_enum_items = 2
};
/// 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(so_autostart_on, 0));
indexTable.insert(std::make_pair(so_autostart_off, 1));
init = true;
}
return indexTable;
}
static const NLMISC::CStringConversion<TValues> &getConversionTable()
{
NL_BEGIN_STRING_CONVERSION_TABLE(TValues)
NL_STRING_CONVERSION_TABLE_ENTRY(so_autostart_on)
NL_STRING_CONVERSION_TABLE_ENTRY(so_autostart_off)
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:
TShardOrders()
: _Value(invalid_val)
{
}
TShardOrders(TValues value)
: _Value(value)
{
}
TShardOrders(const std::string &str)
{
_Value = getConversionTable().fromString(str);
}
void serial(NLMISC::IStream &s)
{
s.serialEnum(_Value);
}
bool operator == (const TShardOrders &other) const
{
return _Value == other._Value;
}
bool operator != (const TShardOrders &other) const
{
return ! (_Value == other._Value);
}
bool operator < (const TShardOrders &other) const
{
return _Value < other._Value;
}
bool operator <= (const TShardOrders &other) const
{
return _Value <= other._Value;
}
bool operator > (const TShardOrders &other) const
{
return !(_Value <= other._Value);
}
bool operator >= (const TShardOrders &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;
}
};
struct TRunningOrders
{
enum TValues
{
ro_deactivated,
ro_activated,
/// the highest valid value in the enum
last_enum_item = ro_activated,
/// a value equal to the last enum item +1
end_of_enum,
invalid_val,
/// Number of enumerated values
nb_enum_items = 2
};
/// 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(ro_deactivated, 0));
indexTable.insert(std::make_pair(ro_activated, 1));
init = true;
}
return indexTable;
}
static const NLMISC::CStringConversion<TValues> &getConversionTable()
{
NL_BEGIN_STRING_CONVERSION_TABLE(TValues)
NL_STRING_CONVERSION_TABLE_ENTRY(ro_deactivated)
NL_STRING_CONVERSION_TABLE_ENTRY(ro_activated)
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:
TRunningOrders()
: _Value(invalid_val)
{
}
TRunningOrders(TValues value)
: _Value(value)
{
}
TRunningOrders(const std::string &str)
{
_Value = getConversionTable().fromString(str);
}
void serial(NLMISC::IStream &s)
{
s.serialEnum(_Value);
}
bool operator == (const TRunningOrders &other) const
{
return _Value == other._Value;
}
bool operator != (const TRunningOrders &other) const
{
return ! (_Value == other._Value);
}
bool operator < (const TRunningOrders &other) const
{
return _Value < other._Value;
}
bool operator <= (const TRunningOrders &other) const
{
return _Value <= other._Value;
}
bool operator > (const TRunningOrders &other) const
{
return !(_Value <= other._Value);
}
bool operator >= (const TRunningOrders &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;
}
};
struct TRunningState
{
enum TValues
{
rs_stopped,
rs_running,
rs_online,
/// the highest valid value in the enum
last_enum_item = rs_online,
/// 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(rs_stopped, 0));
indexTable.insert(std::make_pair(rs_running, 1));
indexTable.insert(std::make_pair(rs_online, 2));
init = true;
}
return indexTable;
}
static const NLMISC::CStringConversion<TValues> &getConversionTable()
{
NL_BEGIN_STRING_CONVERSION_TABLE(TValues)
NL_STRING_CONVERSION_TABLE_ENTRY(rs_stopped)
NL_STRING_CONVERSION_TABLE_ENTRY(rs_running)
NL_STRING_CONVERSION_TABLE_ENTRY(rs_online)
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:
TRunningState()
: _Value(invalid_val)
{
}
TRunningState(TValues value)
: _Value(value)
{
}
TRunningState(const std::string &str)
{
_Value = getConversionTable().fromString(str);
}
void serial(NLMISC::IStream &s)
{
s.serialEnum(_Value);
}
bool operator == (const TRunningState &other) const
{
return _Value == other._Value;
}
bool operator != (const TRunningState &other) const
{
return ! (_Value == other._Value);
}
bool operator < (const TRunningState &other) const
{
return _Value < other._Value;
}
bool operator <= (const TRunningState &other) const
{
return _Value <= other._Value;
}
bool operator > (const TRunningState &other) const
{
return !(_Value <= other._Value);
}
bool operator >= (const TRunningState &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;
}
};
struct TRunningTag
{
enum TValues
{
rt_chain_crashing,
rt_locally_started,
rt_locally_stopped,
rt_globally_stopped,
rt_stopped_for_patch,
rt_externaly_started,
rt_slow_to_stop,
rt_slow_to_start,
/// the highest valid value in the enum
last_enum_item = rt_slow_to_start,
/// a value equal to the last enum item +1
end_of_enum,
invalid_val,
/// Number of enumerated values
nb_enum_items = 8
};
/// 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(rt_chain_crashing, 0));
indexTable.insert(std::make_pair(rt_locally_started, 1));
indexTable.insert(std::make_pair(rt_locally_stopped, 2));
indexTable.insert(std::make_pair(rt_globally_stopped, 3));
indexTable.insert(std::make_pair(rt_stopped_for_patch, 4));
indexTable.insert(std::make_pair(rt_externaly_started, 5));
indexTable.insert(std::make_pair(rt_slow_to_stop, 6));
indexTable.insert(std::make_pair(rt_slow_to_start, 7));
init = true;
}
return indexTable;
}
static const NLMISC::CStringConversion<TValues> &getConversionTable()
{
NL_BEGIN_STRING_CONVERSION_TABLE(TValues)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_chain_crashing)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_locally_started)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_locally_stopped)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_globally_stopped)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_stopped_for_patch)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_externaly_started)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_slow_to_stop)
NL_STRING_CONVERSION_TABLE_ENTRY(rt_slow_to_start)
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:
TRunningTag()
: _Value(invalid_val)
{
}
TRunningTag(TValues value)
: _Value(value)
{
}
TRunningTag(const std::string &str)
{
_Value = getConversionTable().fromString(str);
}
void serial(NLMISC::IStream &s)
{
s.serialEnum(_Value);
}
bool operator == (const TRunningTag &other) const
{
return _Value == other._Value;
}
bool operator != (const TRunningTag &other) const
{
return ! (_Value == other._Value);
}
bool operator < (const TRunningTag &other) const
{
return _Value < other._Value;
}
bool operator <= (const TRunningTag &other) const
{
return _Value <= other._Value;
}
bool operator > (const TRunningTag &other) const
{
return !(_Value <= other._Value);
}
bool operator >= (const TRunningTag &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 TServiceStatus
{
protected:
//
std::string _ShardName;
//
std::string _ServiceLongName;
//
std::string _ServiceShortName;
//
std::string _ServiceAliasName;
//
TRunningState _RunningState;
//
TRunningOrders _RunningOrders;
//
std::set < TRunningTag > _RunningTags;
//
std::string _Status;
public:
//
const std::string &getShardName() const
{
return _ShardName;
}
std::string &getShardName()
{
return _ShardName;
}
void setShardName(const std::string &value)
{
_ShardName = value;
}
//
const std::string &getServiceLongName() const
{
return _ServiceLongName;
}
std::string &getServiceLongName()
{
return _ServiceLongName;
}
void setServiceLongName(const std::string &value)
{
_ServiceLongName = value;
}
//
const std::string &getServiceShortName() const
{
return _ServiceShortName;
}
std::string &getServiceShortName()
{
return _ServiceShortName;
}
void setServiceShortName(const std::string &value)
{
_ServiceShortName = value;
}
//
const std::string &getServiceAliasName() const
{
return _ServiceAliasName;
}
std::string &getServiceAliasName()
{
return _ServiceAliasName;
}
void setServiceAliasName(const std::string &value)
{
_ServiceAliasName = value;
}
//
TRunningState getRunningState() const
{
return _RunningState;
}
void setRunningState(TRunningState value)
{
_RunningState = value;
}
//
TRunningOrders getRunningOrders() const
{
return _RunningOrders;
}
void setRunningOrders(TRunningOrders value)
{
_RunningOrders = value;
}
//
const std::set < TRunningTag > &getRunningTags() const
{
return _RunningTags;
}
std::set < TRunningTag > &getRunningTags()
{
return _RunningTags;
}
void setRunningTags(const std::set < TRunningTag > &value)
{
_RunningTags = value;
}
//
const std::string &getStatus() const
{
return _Status;
}
std::string &getStatus()
{
return _Status;
}
void setStatus(const std::string &value)
{
_Status = value;
}
bool operator == (const TServiceStatus &other) const
{
return _ShardName == other._ShardName
&& _ServiceLongName == other._ServiceLongName
&& _ServiceShortName == other._ServiceShortName
&& _ServiceAliasName == other._ServiceAliasName
&& _RunningState == other._RunningState
&& _RunningOrders == other._RunningOrders
&& _RunningTags == other._RunningTags
&& _Status == other._Status;
}
// constructor
TServiceStatus()
{
}
void serial(NLMISC::IStream &s)
{
s.serial(_ShardName);
s.serial(_ServiceLongName);
s.serial(_ServiceShortName);
s.serial(_ServiceAliasName);
s.serial(_RunningState);
s.serial(_RunningOrders);
s.serialCont(_RunningTags);
s.serial(_Status);
}
private:
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminServiceSkel
{
public:
/// the interceptor type
typedef NLNET::CInterceptorForwarder < CAdminServiceSkel> TInterceptor;
protected:
CAdminServiceSkel()
{
// do early run time check for message table
getMessageHandlers();
}
virtual ~CAdminServiceSkel()
{
}
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 (CAdminServiceSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
const TMessageHandlerMap &getMessageHandlers() const;
void upServiceUpdate_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void graphUpdate_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void highRezGraphUpdate_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void commandResult_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 < CAdminServiceSkel>;
public:
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
// An AES send an update of the list of service up
virtual void upServiceUpdate(NLNET::IModuleProxy *sender, const std::vector < TServiceStatus > &serviceStatus) =0;
// An AES send graph data update
virtual void graphUpdate(NLNET::IModuleProxy *sender, const TGraphDatas &graphDatas) =0;
// An AES send high rez graph data update
virtual void highRezGraphUpdate(NLNET::IModuleProxy *sender, const THighRezDatas &graphDatas) =0;
// AES send back the result of execution of a command
virtual void commandResult(NLNET::IModuleProxy *sender, uint32 commandId, const std::string &serviceAlias, const std::string &result) =0;
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminServiceProxy
{
/// 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
CAdminServiceSkel *_LocalModuleSkel;
public:
CAdminServiceProxy(NLNET::IModuleProxy *proxy)
{
_ModuleProxy = proxy;
// initialize collocated servant interface
if (proxy->getModuleDistance() == 0)
{
_LocalModule = proxy->getLocalModule();
nlassert(_LocalModule != NULL);
CAdminServiceSkel::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 ~CAdminServiceProxy()
{
}
NLNET::IModuleProxy *getModuleProxy()
{
return _ModuleProxy;
}
// An AES send an update of the list of service up
void upServiceUpdate(NLNET::IModule *sender, const std::vector < TServiceStatus > &serviceStatus);
// An AES send graph data update
void graphUpdate(NLNET::IModule *sender, const TGraphDatas &graphDatas);
// An AES send high rez graph data update
void highRezGraphUpdate(NLNET::IModule *sender, const THighRezDatas &graphDatas);
// AES send back the result of execution of a command
void commandResult(NLNET::IModule *sender, uint32 commandId, const std::string &serviceAlias, const std::string &result);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_upServiceUpdate(NLNET::CMessage &__message, const std::vector < TServiceStatus > &serviceStatus);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_graphUpdate(NLNET::CMessage &__message, const TGraphDatas &graphDatas);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_highRezGraphUpdate(NLNET::CMessage &__message, const THighRezDatas &graphDatas);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_commandResult(NLNET::CMessage &__message, uint32 commandId, const std::string &serviceAlias, const std::string &result);
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminExecutorServiceSkel
{
public:
/// the interceptor type
typedef NLNET::CInterceptorForwarder < CAdminExecutorServiceSkel> TInterceptor;
protected:
CAdminExecutorServiceSkel()
{
// do early run time check for message table
getMessageHandlers();
}
virtual ~CAdminExecutorServiceSkel()
{
}
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 (CAdminExecutorServiceSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
const TMessageHandlerMap &getMessageHandlers() const;
void setShardOrders_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void shutdownShard_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void controlCmd_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void serviceCmd_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void commandResult_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void graphUpdate_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void highRezGraphUpdate_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void serviceStatusUpdate_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 < CAdminExecutorServiceSkel>;
public:
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
// AS send orders for a shard
virtual void setShardOrders(NLNET::IModuleProxy *sender, const std::string &shardName, const TShardOrders &shardOrders) =0;
// AS send a command to shutdown a shard with a delay
virtual void shutdownShard(NLNET::IModuleProxy *sender, const std::string &shardName, uint32 delay) =0;
// AS send a control command to this AES
virtual void controlCmd(NLNET::IModuleProxy *sender, uint32 commandId, const std::string &serviceAlias, const std::string &command) =0;
// Send a command to a service.
virtual void serviceCmd(NLNET::IModuleProxy *sender, uint32 commandId, const std::string &serviceAlias, const std::string &command) =0;
// AES client send back the result of execution of a command
virtual void commandResult(NLNET::IModuleProxy *sender, uint32 commandId, const std::string &serviceAlias, const std::string &result) =0;
// A service send graph data update
virtual void graphUpdate(NLNET::IModuleProxy *sender, const TGraphDatas &graphDatas) =0;
// A service high rez graph data update
virtual void highRezGraphUpdate(NLNET::IModuleProxy *sender, const THighRezDatas &graphDatas) =0;
// A service send an update of of it's status string
virtual void serviceStatusUpdate(NLNET::IModuleProxy *sender, const std::string &status) =0;
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminExecutorServiceProxy
{
/// 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
CAdminExecutorServiceSkel *_LocalModuleSkel;
public:
CAdminExecutorServiceProxy(NLNET::IModuleProxy *proxy)
{
_ModuleProxy = proxy;
// initialize collocated servant interface
if (proxy->getModuleDistance() == 0)
{
_LocalModule = proxy->getLocalModule();
nlassert(_LocalModule != NULL);
CAdminExecutorServiceSkel::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 ~CAdminExecutorServiceProxy()
{
}
NLNET::IModuleProxy *getModuleProxy()
{
return _ModuleProxy;
}
// AS send orders for a shard
void setShardOrders(NLNET::IModule *sender, const std::string &shardName, const TShardOrders &shardOrders);
// AS send a command to shutdown a shard with a delay
void shutdownShard(NLNET::IModule *sender, const std::string &shardName, uint32 delay);
// AS send a control command to this AES
void controlCmd(NLNET::IModule *sender, uint32 commandId, const std::string &serviceAlias, const std::string &command);
// Send a command to a service.
void serviceCmd(NLNET::IModule *sender, uint32 commandId, const std::string &serviceAlias, const std::string &command);
// AES client send back the result of execution of a command
void commandResult(NLNET::IModule *sender, uint32 commandId, const std::string &serviceAlias, const std::string &result);
// A service send graph data update
void graphUpdate(NLNET::IModule *sender, const TGraphDatas &graphDatas);
// A service high rez graph data update
void highRezGraphUpdate(NLNET::IModule *sender, const THighRezDatas &graphDatas);
// A service send an update of of it's status string
void serviceStatusUpdate(NLNET::IModule *sender, const std::string &status);
// AS send orders for a shard
// This is the broadcast version of the method.
template < class ProxyIterator >
static void broadcast_setShardOrders(ProxyIterator first, ProxyIterator last, NLNET::IModule *sender, const std::string &shardName, const TShardOrders &shardOrders)
{
NLNET::CMessage message;
// create the message to send to multiple dest
buildMessageFor_setShardOrders(message , shardName, shardOrders);
for (; first != last; ++first)
{
NLNET::IModuleProxy *proxy = *first;
proxy->sendModuleMessage(sender, message);
}
}
// AS send a command to shutdown a shard with a delay
// This is the broadcast version of the method.
template < class ProxyIterator >
static void broadcast_shutdownShard(ProxyIterator first, ProxyIterator last, NLNET::IModule *sender, const std::string &shardName, uint32 delay)
{
NLNET::CMessage message;
// create the message to send to multiple dest
buildMessageFor_shutdownShard(message , shardName, delay);
for (; first != last; ++first)
{
NLNET::IModuleProxy *proxy = *first;
proxy->sendModuleMessage(sender, message);
}
}
// AS send a control command to this AES
// This is the broadcast version of the method.
template < class ProxyIterator >
static void broadcast_controlCmd(ProxyIterator first, ProxyIterator last, NLNET::IModule *sender, uint32 commandId, const std::string &serviceAlias, const std::string &command)
{
NLNET::CMessage message;
// create the message to send to multiple dest
buildMessageFor_controlCmd(message , commandId, serviceAlias, command);
for (; first != last; ++first)
{
NLNET::IModuleProxy *proxy = *first;
proxy->sendModuleMessage(sender, message);
}
}
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_setShardOrders(NLNET::CMessage &__message, const std::string &shardName, const TShardOrders &shardOrders);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_shutdownShard(NLNET::CMessage &__message, const std::string &shardName, uint32 delay);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_controlCmd(NLNET::CMessage &__message, uint32 commandId, const std::string &serviceAlias, const std::string &command);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_serviceCmd(NLNET::CMessage &__message, uint32 commandId, const std::string &serviceAlias, const std::string &command);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_commandResult(NLNET::CMessage &__message, uint32 commandId, const std::string &serviceAlias, const std::string &result);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_graphUpdate(NLNET::CMessage &__message, const TGraphDatas &graphDatas);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_highRezGraphUpdate(NLNET::CMessage &__message, const THighRezDatas &graphDatas);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_serviceStatusUpdate(NLNET::CMessage &__message, const std::string &status);
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminExecutorServiceClientSkel
{
public:
/// the interceptor type
typedef NLNET::CInterceptorForwarder < CAdminExecutorServiceClientSkel> TInterceptor;
protected:
CAdminExecutorServiceClientSkel()
{
// do early run time check for message table
getMessageHandlers();
}
virtual ~CAdminExecutorServiceClientSkel()
{
}
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 (CAdminExecutorServiceClientSkel::*TMessageHandler)(NLNET::IModuleProxy *sender, const NLNET::CMessage &message);
typedef std::map<std::string, TMessageHandler> TMessageHandlerMap;
const TMessageHandlerMap &getMessageHandlers() const;
void serviceCmd_skel(NLNET::IModuleProxy *sender, const NLNET::CMessage &__message);
void serviceCmdNoReturn_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 < CAdminExecutorServiceClientSkel>;
public:
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
// execute a command and return the result.
virtual void serviceCmd(NLNET::IModuleProxy *sender, uint32 commandId, const std::string &command) =0;
// Send a command to a service without waiting for the return value.
virtual void serviceCmdNoReturn(NLNET::IModuleProxy *sender, const std::string &command) =0;
};
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
/////////////////////////////////////////////////////////////////
class CAdminExecutorServiceClientProxy
{
/// 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
CAdminExecutorServiceClientSkel *_LocalModuleSkel;
public:
CAdminExecutorServiceClientProxy(NLNET::IModuleProxy *proxy)
{
_ModuleProxy = proxy;
// initialize collocated servant interface
if (proxy->getModuleDistance() == 0)
{
_LocalModule = proxy->getLocalModule();
nlassert(_LocalModule != NULL);
CAdminExecutorServiceClientSkel::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 ~CAdminExecutorServiceClientProxy()
{
}
NLNET::IModuleProxy *getModuleProxy()
{
return _ModuleProxy;
}
// execute a command and return the result.
void serviceCmd(NLNET::IModule *sender, uint32 commandId, const std::string &command);
// Send a command to a service without waiting for the return value.
void serviceCmdNoReturn(NLNET::IModule *sender, const std::string &command);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_serviceCmd(NLNET::CMessage &__message, uint32 commandId, const std::string &command);
// Message serializer. Return the message received in reference for easier integration
static const NLNET::CMessage &buildMessageFor_serviceCmdNoReturn(NLNET::CMessage &__message, const std::string &command);
};
}
#endif