C++事件/消息系统

C++ events/messages system

本文关键字:系统 消息 事件 C++      更新时间:2023-10-16

我需要实现(不使用某些库/开源)一个事件/消息系统。

我有以下限制:

  • 它一定很快。它将用于游戏,速度是主要限制。我认为我不能在每次发送新消息/事件时创建/删除消息/事件类,即使我使用自定义分配器也是如此。

  • 我必须能够预测何时会收到发送/创建的消息/事件。

  • 它必须易于使用。无论系统的实现有多复杂,使用它的程序员都必须有一个易于使用的界面。

  • 我更喜欢避免像在Windows消息上那样的巨大开关,但我也希望避免只为一个函数重写类——事件处理程序或类似的东西。我认为类似MFC样式的东西会很好。

  • 它必须能够在没有性能问题的情况下处理大量的消息/事件(可能是1000/帧,每秒60帧,我不太清楚)。

  • 它不能使用其他平台上没有的编译器技巧。它必须是便携的。我将使用C++来实现。

任何你认为适合/可能有助于此的架构/设计/链接/书籍都将不胜感激。谢谢

让我逐一阐述您的观点:

它一定很快。它将用于游戏,速度是主要的限制规定我想我不能创建/删除消息/事件类每次发送新消息/事件时即使我使用自定义分配器那个

重用和重新填充现有消息就足够了,而且可能更高效(在一个项目中对我来说)。不需要自定义分配器。

我必须能够预测将发送/创建消息/事件收到。

你可以做出预测,但正常的网络(你想要便携性)会让你的预测有时有点偏离,有时偏离

它必须易于使用。没关系会有多复杂系统的实现使用它的程序员必须有易于使用的界面。

这应该是可能的,尽管这可能会花费你一些额外的精力。错误处理和特殊情况(平台、网络)浮现在脑海中。

我更喜欢避免巨大的开关喜欢Windows消息,但我也希望避免重写的类只有一个函数-事件处理程序或者类似的东西。我想类似MFC样式的美好的

避免手动编写的巨型交换机是我100%赞同的一件事。

它必须能够处理很多(也许1000帧/帧,每秒60帧,不要确切地知道这一点)的消息/事件没有性能问题。

如果您在实现过程中小心,那么您应该只受网络的限制。

它不能使用在其他平台上不可用。它必须是可移植的。我将使用C++实施

并不是所有平台上都可以使用C++。你能列出你正在处理的平台吗?