#pragma once #include #include 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_; }; }