C++ C++;事件/信息系统

C++ C++;事件/信息系统,c++,event-handling,messaging,C++,Event Handling,Messaging,我需要实现(而不是使用一些库/开源)一个事件/消息系统 我有以下限制: 一定很快。它将用于游戏,速度是主要限制。我想我无法在每次发送新消息/事件时创建/删除消息/事件类,即使我为此使用自定义分配器 我必须能够预测何时会收到发送/创建的消息/事件 它必须易于使用。不管系统的实现有多复杂,使用它的程序员必须有一个易于使用的界面 我希望避免像Windows消息上那样的巨大开关,但我也希望避免只为一个函数重写一个类—事件处理程序或类似的东西。我觉得像MFC风格的东西会很好 它必须能够在没有性能问题的情

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

我有以下限制:

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

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

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

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

  • 它必须能够在没有性能问题的情况下处理大量的消息/事件(可能以60帧/秒的速度处理1000帧/帧,我不知道这一点)

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

如果您认为适合/可能有帮助的架构/设计/链接/书籍,我们将不胜感激。谢谢

让我逐一阐述你的观点:

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

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

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

你可以做出预测,但是普通的网络(你想要便携性)会让你的预测有时有点偏离,有时甚至偏离

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

这应该是可能的,尽管这可能会花费你一些额外的努力。想到错误处理和特殊情况(平台、网络)

我宁愿避免巨型开关 喜欢Windows消息,但我也 要避免重写的类吗 只有一个函数-事件处理程序 或者类似的事情。我想 类似于MFC风格的东西将是 很好

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

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

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

它不能使用编译器,因为这些黑客 在其他平台上不可用。信息技术 必须便于携带。我将使用C++ 实施


在所有平台上都不存在C++。您能列出您正在使用的平台吗?

是的。如果你能拥有一切就好了,不是吗?你有没有看过其他库,比如boost信号、qt信号、MPI等?这是一个典型的“非建设性”问题的例子。“此问题不适合我们的问答形式。我们希望答案通常涉及事实、参考资料或特定专业知识;此问题可能会征求意见、辩论、辩论、投票或广泛讨论。”投票结束,sorry@Felics:因为,这个问题可能会征求意见、辩论、争论、投票,或延长discussion@Felics:还有,为什么其他框架不能满足您的需求?也许你可以编辑你的问题听起来像“应该是MPI一样快,灵活的QT信号/时隙,和可预测的潮汐”。ALMOUST所有游戏平台:+ 1我已经使用了NDS上的C++,并设置了事件系统,其中事件是简单的对象,每个包含在发送器对象中,在使用它们时不进行分配,并重复使用它们。实现这一点的条件是,在同一个迭代中不会发生两次事件。@Felics,Flash是一个重要的游戏平台。