// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#ifndef RYAI_AIDS_MESSAGES_H
#define RYAI_AIDS_MESSAGES_H
#include "nel/misc/types_nl.h"
#include "nel/misc/sheet_id.h"
#include "nel/misc/entity_id.h"
#include "nel/net/transport_class.h"
//----------------------------------------------------------------
// Message sent by AIS to AIDS in reaction to AIDS's service up
class CMsgAIServiceUp : public NLNET::CTransportClass
{
public:
float ProcessorAllocation;
float RamAllocation;
std::vector ManagersRunning;
CMsgAIServiceUp()
{
ProcessorAllocation=1.0f;
RamAllocation=1.0f;
}
CMsgAIServiceUp(float processorAllocation,float ramAllocation)
{
ProcessorAllocation=processorAllocation;
RamAllocation=ramAllocation;
}
virtual void description ()
{
className ("CMsgAIServiceUp");
property ("ProcessorAllocation", PropFloat, 1.0f, ProcessorAllocation);
property ("RamAllocation", PropFloat, 1.0f, RamAllocation);
propertyCont ("ManagersRunning", PropUInt16, ManagersRunning);
}
virtual void callback (const std::string &name, NLNET::TServiceId id);
};
//----------------------------------------------------------------
// Message sent by AIS to AIDS each time new manager comes up
class CMsgAIManagerUp : public NLNET::CTransportClass
{
public:
uint16 MgrId;
std::string Name;
CMsgAIManagerUp()
{
}
CMsgAIManagerUp(uint mgrId,std::string Name)
{
MgrId=mgrId;
}
virtual void description ()
{
className ("CMsgAIManagerUp");
property ("MgrId", PropUInt16, uint16(0), MgrId);
property ("Name", PropString, std::string(), Name);
}
virtual void callback (const std::string &name, NLNET::TServiceId id);
};
//----------------------------------------------------------------
// Message sent by AIS to AIDS any time there's an important info to display
class CMsgAIFeedback : public NLNET::CTransportClass
{
public:
std::string Message;
CMsgAIFeedback()
{
}
CMsgAIFeedback(std::string message)
{
Message=message;
}
CMsgAIFeedback(char *msgStr)
{
Message=std::string(msgStr);
}
virtual void description ()
{
className ("CMsgAIFeedback");
property ("Msg", PropString, std::string(), Message);
}
virtual void callback (const std::string &name, NLNET::TServiceId id);
};
#endif