功能
- 用于操作结果的返回
- 标记操作状态的成功与失败
- 失败时有相应的描述信息
源文件
leveldb/status.h
leveldb/util/status.cc
内部枚举定义
1 | enum Code { |
属性
- private
const char* state_
,用于记录错误具体信息- 默认为
nullptr
- 如果为
nullptr
,则表示状态为kOk
正常 - 格式:
- [:3]:后续错误信息字符串的整体长度(不包含长度记录和错误号字节)
- [4]:错误号(
Code
的枚举) - [5:]:错误文字信息
- 最多由两段错误信息拼接而成
- 两段文字中间使用连个字节
:
分割
- 默认为
方法
静态方法
主要是用于创建Status的方法
OK
,返回正常的Status结构NotFound
,返回kNotFound
的Status结构Corruption
,返回kCorruption
的Status结构NotSupported
,返回kNotSupported
的Status结构InvalidArgument
,返回kInvalidArgument
的Status结构IOError
,返回kIOError
的Status结构CopyState
,将参数的state
字符串完整复制到自身的state
中
构造复制函数
分别包含了标准和右值引用优化对应的函数
其他
公共
ok
,返回State
是否正常IsNotFound
,返回State
是否为kNotFound
IsCorruption
,返回State
是否为kCorruption
IsIOError
,返回State
是否为kIOError
IsNotSupportedError
,返回State
是否为kNotSupported
IsInvalidArgument
,返回State
是否为kInvalidArgument
ToString
,如果状态正常,则返回”OK”,否则返回对应的错误信息描述
私有
code
,将state_
中记录的Code
提取出来