我们的程序 可能会有多种服务,故设计一个服务 队列,对 服务 之间进行 有效的通信和管理。
主要代码 如下:
class Service {
public:
using Ptr = std::shared_ptr<Service>;
public:
explicit Service(const ServiceId &svcId);
virtual ~Service() = default;
virtual void preInit() {}
virtual void postInit() {}
static void run();
[[nodiscard]] const ServiceId &sid() const;
void sendMessageTo(const ServiceId &sid, const MessageBase::Ptr &msg);
void sendMessageTo(const ServiceIdList &ss, const MessageBase::Ptr &msg);
void sendMessageTo(const ServiceId &sid, const MessageId &mid);
void sendMessageTo(const ServiceIdList &ss, const MessageId &mid);
template<typename T>
void sendMessageTo(const ServiceId &sid, const MessageId &mid, const T &payload);
template<typename T>
void sendMessageTo