文档章节

Ceph源码之 common/config.*

ali安东尼
 ali安东尼
发布于 2017/07/13 14:57
字数 274
阅读 4
收藏 0

今天在研究ceph时,看到一个初始化成员变量的技巧。 如果一个class中有成百上千个成员变量,有没有觉得当写类头文件都写到手痛,还要在构造函数里初始化它们,简直不敢再想下去了。 像下图这样,这只是头文件: 输入图片说明

输入图片说明

输入图片说明

初始化全局数组config_optionsp时,每个config_option元素记录着md_config_t里的一个成员变量的名字,类型和偏移,如上图中的编号4小图。主要用的是stddef.h里的offsetof计算成员变量在class里的偏移值。 当调用get时进入到上图中小图1的函数,先找根据成员变量的名字找出config_option对象,再如小图2调用config_option的conf_ptr(小图3),其中md_conf_off是该成员变量在md_config_t类中的偏移量。这样就能直接存取成员变量,而且运行效率更高,同时又降低了开发的工作量,代码也更美观!

由睿江云提供,想了解更多,请登陆www.eflycloud.com

© 著作权归作者所有

共有 人打赏支持
ali安东尼
粉丝 3
博文 192
码字总数 173101
作品 0
广州
私信 提问
ceph(jewel版)编译

一、在github下载ceph源码: git clone --recursive https://github.com/ceph/ceph.git 下载ceph的其他子模块,否则在编译过程中会出现缺少库 git submodule update --force --init --recurs...

zrz11
2016/11/02
22
0
Ceph v0.94.4 发布,分布式文件系统

Ceph v0.94.4 发布,此版本修复了一些重要的 bug,建议所有 v0.94.x Hammer 用户尽快升级到最新版本。 Ceph 在 GitHub 已经放出 Ceph v0.94.5 版本的下载:https://github.com/ceph/ceph/ar...

oschina
2015/10/27
1K
8
Ceph 9.0.0 发布,分布式文件系统

Ceph 9.0.0 发布,这是 Infernalis 周期的第一个开发版本,而且也是 Ceph 版本发布采用另一个版本号模式的第一个版本。“9” 代表这是第 9 个 cycle-I(Infernalis),I 是第九个字母。第一个...

oschina
2015/05/06
4.9K
25
Deploy Ceph and start using it: Troubleshooting

(Part 1/3 – Installation - Part 3/3 – librados client) It is quite common that after the initial installation, the Ceph cluster reports health warnings. Before using the clus......

加油2018
2014/07/31
0
0
分布式存储Ceph的几种安装方法,源码,apt-get,deploy工具,Ubuntu CentOS

最近搞了下分布式PB级别的存储CEPH 尝试了几种不同的安装,使用 期间遇到很多问题,和大家一起分享。 一、源码安装 说明:源码安装可以了解到系统各个组件, 但是安装过程也是很费劲的,主要...

Yason_Luo
2014/04/04
0
1

没有更多内容

加载失败,请刷新页面

加载更多

mybatis批量update操作的写法,及批量update报错的问题解决方法

mybatis的批量update操作写法很简单,如下: 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿...

编程SHA
38分钟前
6
0
EOS怎样删除钱包

在使用Eos的keosd钱包软件时,如果要删除EOS中指定名称的钱包,最简单的办法是 直接删除钱包文件,不过在删除钱包之前,需要先停止钱包软件的运行。 学习EOS应用开发要选这个:【EOS智能合约...

汇智网教程
45分钟前
7
0
Java语言快速实现简单MQ消息队列服务

使用 JAVA 语言自己动手来写一个MQ (类似ActiveMQ,RabbitMQ) 主要角色 首先我们必须需要搞明白 MQ (消息队列) 中的三个基本角色 ProducerBrokerConsumer 整体架构如下所示 自定义协议 首...

微笑向暖wx
54分钟前
5
0
ES5和ES6那些你必须知道的事儿

  ES5和ES6那些你必须知道的事儿      ES5新增的东西      一、数组方法      1、forEach      用途:遍历,循环      对于空数组不会执行回调函数      复制代码...

SEOwhywhy
今天
11
0
转:[windows]DOS批处理添加任务计划

[windows]DOS批处理添加任务计划 博客分类: Windows 转自:http://gwmold.blog.163.com/blog/static/1553319892010117113457232/ 自动创建每周运行一次的计划任务 创建计划任务可用at,sch...

SamXIAO
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部