我想创建这样的东西:
我有一个模块可以为消息流执行类似“电路切换”的操作。也就是说,它有一个入口和多个出口。一旦消息到达输入端口,就会根据某种逻辑选择输出端口(逻辑在问题的上下文中并不重要)。检查输出端口上是否有任何正在进行的消息传输(对于第一条消息,不会有任何消息)。如果没有传输,则将消息发送到该输出端口,否则,它将保留在该特定输出端口的队列中。我需要决定这种通信的数据结构。请指教
我的想法是有一个出口和相应队列的地图。
queue<message> m_incoming_queue;
typedef map<outport*,m_incoming_queue> transaction_map
如果这是一个好的解决方案,我想知道如何在运行时创建队列?如,我事先不知道会有多少个出口,我根据需要创建出口。