ipc-pubsub
具有发布者/订阅者接口的POSIX共享内存上的简化IPC。
设计须知
思想
Unix / Posix队列需要调整以具有合理数量的可用文件描述符。 我希望不要这样。
UDP需要正确的网络设置,这似乎并不理想
信号量不允许任何数据,这意味着必须通过复杂的共享内存结构(包括有关可用节点的元数据)发送所有实际有效载荷
管道的状态有些复杂,可能导致虚假阻塞管道中的数据过多
设计
单个共享内存对象保留有索引和运行中消息
添加节点
写锁定元数据文件
读取当前的元数据
将节点信息附加到数据
写元数据
解锁元数据文件
发送信息
(可选)检索并使用shm缓冲区:: Allocate()-> ShmBuffer();
Send(ShmBuffer)或Send(data,len)
写锁定元数据文件
读取当前的元数据
附加到适当的飞行队列
解锁元数据文件
sem_up()在所有读者上
2022-05-09 23:23:04
38KB
C++
1