0

所以我有一些简单的生成器类,它很像这样的数据类型(指针和长度)和像这样的简单服装数据类型渲染。如何创建一个图表来帮助我将生成的数据传递到我的渲染器中?

目前我做这样的事情来将我的 Char Ptr 传递给数据生成器,然后将结果传递给渲染器:

     renderer->renderCastedData(producer->updateData(CharPtr));

但是我很想看看是否可以使用 Boost Graph 将表示类的数据映射到某些类作为某些函数的输入并返回该函数的某些其他类?通常有一个“图表”我希望能够调用Graph(MyInstanceOfMyDatatype)并让提升将我的值(以最小的应对)从一个图形元素传递到另一个?

这是一个非常简单的示例,所以它可能看起来图形是多余的,但我希望在我的类之间传递自动值的图形,以防例如有一个生成器和 N 个渲染器 - 在这里我希望图形帮助我,例如提供 N -1 我的班级副本到所有渲染器,除了第一个。

4

1 回答 1

1

您正在寻找的似乎是一个框架,它允许您将简单的生产者-消费者模式扩展到消费者网格中,由单个生产者同时提供。

这不是 Boost.Graph 提供的。Boost.Graph 是在一组图概念上定义的抽象过程(算法)的集合。它假定您已经拥有一个具有图形属性(顶点和边,以及它们之上的迭代器)的数据结构,并允许您将其算法(最大流量、最短距离等)应用于它。此外,它还附带了一些简单的图形模型(邻接矩阵/列表),以防您还没有图形类。

您的用例类似于 Unix tee 命令。TeeConsumer虽然我不知道您正在使用的特定库的 tee 实现,但实现充当其所有注册子消费者的生产者的a 通常并不太复杂。

这是我的一位同事关于为 Qt 的 QIODevice 实现 tee 设备的博客文章,这可能会帮助您入门。

于 2011-04-26T14:54:48.000 回答