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段

SharedMemoryPublisherImpl

posted on 2018-02-26 13:53  reedlau  阅读(208)  评论(0编辑  收藏  举报

导航