AsyncLogging
一个异步的Log类BlockingQueue
提供加锁的双端队列模板BoundedBlocking
提供加锁的循环队列copyable
提供了一个值语义的基类和标志CountDownLatch
可计数的互斥量CurrentThread
记录进程信息Exception
继承自标准库的std::exception
提供一些额外的错误信息FileUtil
封装为一个文件管理类,负责文件的写入更新等功能的实际实现LogFile
专门负责log文件的管理,上承Logging
下接FileUtil
,将FileUtil
扩展为LogFile
,提高后端处理日志的速度Logging
实际的log管理类,设置日志等级,设置日志输出函数等LogStream
用于Log的更加快速的Streamnoncopyable
提供了一个对象语义的基类和标记ProcessInfo
负责一些进程信息函数的封装Singleton
提供了集中单例类的封装SpinLock
使用std::atomic_flag
封装了自旋锁StringPiece
代理模式,用于对string
和char*
做兼容,防止由于const string&
形参,导致传入一个很长的char*
时,会生成一个较大的string
对象,开销比较大Thread
封装了线程调用,调用了一部分CurrentThread
,用于维护各个线程ThreadPool
封装了线程池,调用了Thread
,维护线程池Timestamp
时间戳系统,直接用namespace
进行封装,采用全模板形式,通过特化实现多态,对于未特化的部分,默认不允许使用,链接器会发出错误,对于所有的时间按纳秒传递为uint64_t
类型,适应寄存器TimeZone
时区系统,默认采用国际时区,若要调换直接对uint64_t
进行更改Types
类型转换的封装WeakCallback
封装了弱回调,既可以保证对象生命周期也不会导致生命周期过长
- 采用汇编对其重构
Acceptor
Buffer
专用于网络部分,以提高IO效率,保留脏数据Callbacks
设置了网络部分的可见回调Endian
封装了本机序转换为大端序的方法,以供内部使用Channel
管理fd回调函数和fd事件,用于连接fd,EventLoop
,Poller
部分Sockets
管理系统sockfd,提供系统sockfd对应函数的封装EventLoop
专负责管理IO线程,对于每个EventLoop class
分配一个Channel class
InetAddress
这个类的作用现在还不知道