SharedMemory 手记
名字空间为 sharedmem_transport
类为 SharedMemeorySegment, SharedMemoryBlock, SharedMemoryUtil, SharedMemoryPublisherImpl
SharedMemeorySegment
包含
int32_t _wrote_num;
boost::interprocess::interprocess_mutex _wrote_num_mutex;
boost::interprocess::interprocess_condition _wrote_num_cond;
三个成员变量,用以控制多个进程之间互斥的操作segement中的环形队列中的写入index(_wrote_num)
成员函数有
构造函数: 设置 _wrote_num=-1
虚析构函数 什么也不做
初始化所有块 init_all_blocks 传入共享内存地址,queue_size,msg_size, 传出 real_alloc_size,以及block 描述和 实际地址
SharedMemoryBlock
SharedMemoryUtil
init_sharedmem 初始化shared memory 段,输入topic_name, 返回 segment, segment_mgr,descriptors_sub,queue_size
get_segment 根据topic_name 获取 segment
create_segment 根据提供的topic_name和segment_size创建segment
get_segment_mgr 根据segment返回SharedMemorySegment段
create_segment_mgr 创建SharedMemorySegment段