Files
EntityLibrary/include/Orders/Order.hpp

45 lines
1.1 KiB
C++

#pragma once
#include <WHISPER/Messages/Message.hpp>
#include <SimCore/Identifier.hpp>
namespace Orders
{
enum OrderType: uint8_t
{
HOLD_ORDER,
MOVE_ORDER,
ENGAGE_ORDER,
SYSTEM_STATE_ORDER
};
class Order
{
public:
Order(const SimCore::Identifier id,const SimCore::Identifier orderingEntity,const SimCore::Identifier orderedEntity,const WHISPER::SourceType srcType, const Orders::OrderType OrderType_);
const SimCore::Identifier getOrderID();
const SimCore::Identifier getOrderingEntity();
const SimCore::Identifier getOrderedEntity();
const WHISPER::SourceType srcType;
const Orders::OrderType getOrderType();
protected:
virtual WHISPER::Message buildMessage(SimCore::Identifier parentID) = 0;
private:
const SimCore::Identifier orderID_;
const SimCore::Identifier orderingEntity_;
const SimCore::Identifier orderedEntity_;
const Orders::OrderType OrderType_;
};
}