标签:返回 muduo 函数 LogStream cc buf buffer data 指针
1. 说明
- muduo的日志相关类
- 又是一个复杂的文件
- 日志类之间的关系:
Logger --> Impl --> LogStream --> operator<<FixedBuffer --> g_output --> g_flush
2. FixedBuffer类
0. 类说明
- data_指针指向数组头不变,cur_可变,相当于偏移
- end()就返回缓冲区的尾部指针
1. 变量
- data_
- 数组头指针
- cur_
- 当前位置指针,相当于偏移
- cookie_
- 回调函数
2. 函数
1. 普通
- 构造函数
- 数据初始化和设置cookie_函数
- 析构函数
- 设置cookie_函数
- append(const char* /*restrict*/ buf, size_t len)
- 把buf数据追加到data_后面
- data()
- 返回data_
- length()
- 返回使用的空间的长度
- current()
- 返回cur_
- avail()
- 返回可用空间的大小
- add(size_t len)
- 向后移动cur_指针
- reset()
- 另cur_指针指向数组头
- bzero()
- 把data_清空
- debugString()
- 返回当前用过的数据的字符串,代码很好理解,注释说是调试的时候用
- setCookie()
- 设置cookie_回调函数
- toString()
- 把data_数组转换成string类型返回
- toStringPiece()
- 返回StringPiece类型,这是个自定义类型,大致看了下,有啥用还不清楚,后面有用到再看
2. 私有
- end()
- 返回data_尾部的指针
- cookieStart()
- 静态,空函数,不知道啥用
- cookieEnd()
- 静态,空函数,不知道啥用
3. LogStream类
1. 变量
-
buffer_
- FixBuffer类型
-
kMaxNumericSize
- 静态常量,如名,记录一个数字转换成字符串可能占据的最大字符数
2. 函数
1. 普通
-
append(const char* data, int len)
- 调用buffer_的append()
-
buffer()
- 返回buffer_的引用
-
resetBuffer()
- 调用buffer_的reset()
-
重载<<运算符
- 参数为各种数据类型,总之就是把<<实现成往buffer_里写数据
2. 私有
- staticCheck()
- 编译期断言
- formatInteger(T)
- 把当参数传入的数字类型转换成字符串加到buffer_后面
- 这里使用了.cc文件中的convert函数,具体不细写了,代码不难
4. Fmt类
1. 变量
- buf_
- char数组
- length_
2. 函数
- 构造函数
- 控制把val加入到buf_中的格式,明白snprintf()函数的作用就很好理解了
- data()
- 返回buf_
- length()
- 返回length_
5. 其他
1. detail命名空间
- 两个常量
- kSmallBuffer
- kLargeBuffer,标识buf大小
- FixedBuffer类就在这个命名空间内
2. muduo命名空间
-
LogStream类和Fmt类在这个空间
-
formatSI(int64_t n)
- 格式数量单位为(k, M, G, T, P, E).
-
formatIEC(int64_t n)
- 格式数量单位为(Ki, Mi, Gi, Ti, Pi, Ei).
标签:返回,muduo,函数,LogStream,cc,buf,buffer,data,指针 来源: https://blog.csdn.net/LvPartner/article/details/99936218
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。