所以我有一些简单的生成器类this类似this的数据类型(指针和长度)和一个简单的服装数据类型渲染器,如this。如何创建一个图表来帮助我将生成的数据传递到我的渲染器?
目前我这样做是为了将我的Char Ptr传递给数据生成器而不是结果渲染器:
renderer->renderCastedData(producer->updateData(CharPtr));
但我很想看看是否有可能使用Boost Graph将表示类的数据映射到某些类作为某些函数的输入,并返回其他类的函数?通常有一个“图表”,我希望能够调用Graph(MyInstanceOfMyDatatype)
并提升从一个图元素到另一个图元素的值(最小的应对)?
这是一个非常简单的样本,所以它看起来似乎有点过分,但我想在我的类之间传递自动值的图形,例如有一个生成器和N个渲染器 - 这里我想图形来帮助我示例为所有渲染器提供我班级的N-1副本,除了第一个。
答案 0 :(得分:1)
您正在寻找的是一个框架,它允许您将简单的生产者 - 消费者模式扩展到消费者网络中,同时由单个生产者提供。
这不是Boost.Graph提供的。 Boost.Graph是在一组图概念上定义的抽象过程(算法)的集合。它假设您已经拥有数据结构,该数据结构具有图形属性(顶点和边缘,以及它们上面的迭代器),并允许您将其算法(最大流量,最短距离等)应用于它。此外,它还带有一些简单的图形模型(邻接矩阵/列表),以防您没有图表类。
您的用例类似于Unix tee命令。虽然我不知道您正在使用的特定库的tee实现,但实现TeeConsumer
作为其所有已注册子消费者的生产者通常并不太复杂。
以下是我的同事blog post关于为Qt的QIODevice实施T恤设备的问题,这可能有助于您入门。